Seite 1 von 1

Was ist womöglich falsch wenn sprintf nicht funktioniert?

Verfasst: Fr 18.Mai, 2007 10:57
von Christian_N
Hallo,
da es jetzt mehr um PHP sich handelt, auch wenn ich es in phpBB verbaut habe, schreib ich trotzdem mal hier rein.
Bisher hatte ich mit die sprintf() funktion keine Probleme, aber Gestern Abend habe ich versucht die wieder zu verbauen und die funktioniert absolut nicht, er tut mir einfach es nicht ausgeben was er ausgeben soll.

Ich habe ja den Eintrag "gebuehr" in die phpbb_config und die wollte ich auslesen lassen, weil viele schon sich angemeldet hatte und dann per Mail schrieb was es kostet nee dann löscht mich bitte wieder usw. Obwohl im Header eigentlich standen.

Also hab ich die Datei wieder gemacht bei der Anmeldung damit erst die Einverständniserklärung kommt und da es ganz Groß geschrieben bevor die auf "Einverstanden" klicken.

Aber statt das was in $board_config['gebuehr'] steht tut er es einfach leer lassen also gibt "€/Jahr p.P." aus statt "5,00€/Jahr p.P."

Jetzt weiss ich nicht was ich falsch gemacht habe diesmal, hier mal den Code in der usercp_register.php

Code: Alles auswählen

		'AGREEMENT' => sprintf($lang['Reg_agreement'], $board_config['gebuehr']),
und in der lang_main.php

Code: Alles auswählen

$lang['Reg_agreement'] = '<span style="font-size: 18px; color: red">Bitte bedenke das die Mitgliedschaft im Fanclub %s€/Jahr p.P. kostet, mit der Anmeldung bist damit einverstanden und hast dann einen gültigen Vertrag mit dem Fanclub abgeschlossen!</span>';
im prinzip so wie ich es immer mache nur das er diesmal es nicht auslesen tut
^1

Schonmal Danke für jede Hilfe...

Gruß Chris

EDIT: :wall: :wall: :wall: Thema hat sich erledigt, sorry wenn ich es umsonst eröffnet habe, war wohl Gestern Abend zu spät, habs eben erst festgestellt das dass ganze ja in einer function liegt und zwar in der show_coppa() so das ich also den global $board_config hinzufügen musste ^a sprich in der usercp_register.php noch aus

Code: Alles auswählen

function show_coppa()
{
	global $userdata, $template, $lang, $phpbb_root_path, $phpEx;
dieses hier machen

Code: Alles auswählen

function show_coppa()
{
	global $userdata, $template, $lang, $board_config, $phpbb_root_path, $phpEx;
dann klappt es auch mit dem auslesen wieder, naja so ist PHP eben mal, eine Sache für sich
:)

Verfasst: Fr 18.Mai, 2007 11:42
von oxpus
Nein, das ist ein Punkt, der in den meisten höheren Programmiersprachen vorkommt, um u. a. schlicht Hauptspeicher zu sparen:
Eine Funktion ist ein Bereich für sich und vom Rest komplett abgeschottet. Sie fungiert quasi als eigenes Script innerhalb eines anderen Scriptes.
Daher werden einer Funktion ja je Anwendungsfall auch Parameter übergeben, die die Funktion verarbeiten/verwenden kann/soll.
Alle anderen, bereits "global" verfügbaren Werte werden dann mit (bei PHP) global; aus der "Umgebung" der Funktion eingebunden, um das Rad in der Funktion nicht nochmal neu erfinden zu müssen (also die Werte erneut abzurufen/zu berechnen).

global ist da ein Punkt, über den auch ich im Tran immer wieder stolpere...

Verfasst: Fr 18.Mai, 2007 11:49
von Christian_N
Naja die hauptsache ist das er jetzt es wieder auslesen tut und es funktioniert :), denke mal wenn es Gestern Abend nicht zu spät gewesen wäre, hätte ich es sicher auch dort gleich gepackt, da diese global diesemal ja nicht sehr weit entfernt war war ja fast schon am Anfang meines sprintf() und somit eigentlich nicht zu übersehen. :D