phpBB 2.0.21 - Fehler in der session.php
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Welche Datei hast du denn aufgerufen? Es sieht so aus, als würden da eine Menge Variablen fehlen (u.a. HTTP_SERVER_VARS !) Von welcher Datei wird der ganze Kram denn aufgerufen (am besten mal Posten)? Es sieht fast so aus, als würden da ein paar Funktionen zu früh aufgerufen bzw. als müsste das Login VOR diesen Funktionen stattfinden.
interessant wäre neben der aufrufenden Datei functions_ip_track.php.
Ich frage mich außerdem warum es nicht zu sql Fehlern führt wenn das table_prefix nicht gefunden wird.Notice: Undefined index: user_id in /www/htdocs/v157017/forum/includes/functions_ip_track.php on line 41
Notice: Undefined index: user_id in /www/htdocs/v157017/forum/includes/functions_ip_track.php on line 50
Notice: Undefined variable: table_prefix in /www/htdocs/v157017/forum/includes/functions_ip_track.php on line 55
Notice: Undefined variable: table_prefix in /www/htdocs/v157017/forum/includes/functions_ip_track.php on line 61
interessant wäre neben der aufrufenden Datei functions_ip_track.php.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Und die aufrufende Datei (vermutlich login.php)?
die Datei functions_ip_track wird schon mal definitiv zu früh aufgerufen, sie benutzt Daten, die aus der Session kommen, diese existiert aber noch nicht. Das ist aber nicht der Fehler. Der kann eigentlich nur noch in der message_die Funktion liegen (functions.php), zumindest sofern der User über den Usernamen/User_id gebannt wurde und nicht über die IP. Aber dann müsste die Meldung zumindest auf Englisch kommen (eigentlich auf der Default Sprache) wenn die Usersprache fehlt.
Interessant ist vor allem auch dass das
funktioniert, obwohl ja die Fehlermeldung ausgegeben wird, dass $table_prefix fehlt. Das kann eigentlich nur bedeuten, dass in der DB eine Tabelle ohne Prefix ist (oder auch alle). Aber auch dass ist nicht die Ursache.
$lang['xxx'] sollte in dem Aufruf aber nicht stehen, da es zu diesem Zeitpunkt noch nichts enthält, somit ist das Verhalten, eine leere Meldung auszugeben in diesem Fall schon mal vollkommen korrekt. $lang wird erst in der Funktion message_die eingebunden (in diesem Fall).
Wir müssen den Fehler stärker eingrenzen. Poste mal die functions.php (es reicht auch die message_die), außerdem kannst du mal ausprobieren ob etwas ausgegeben wird, wenn du eine Echo Anweisung in die Sprachdateien schreibst. Dann wissen wir, ob das Einbinden überhaupt stattfindet.
die Datei functions_ip_track wird schon mal definitiv zu früh aufgerufen, sie benutzt Daten, die aus der Session kommen, diese existiert aber noch nicht. Das ist aber nicht der Fehler. Der kann eigentlich nur noch in der message_die Funktion liegen (functions.php), zumindest sofern der User über den Usernamen/User_id gebannt wurde und nicht über die IP. Aber dann müsste die Meldung zumindest auf Englisch kommen (eigentlich auf der Default Sprache) wenn die Usersprache fehlt.
Interessant ist vor allem auch dass das
Code: Alles auswählen
$q1 = "SELECT *
FROM ". $table_prefix ."ip_tracking_config";
$r1 = $db -> sql_query($q1);
$row1 = $db -> sql_fetchrow($r1);
$lang['xxx'] sollte in dem Aufruf aber nicht stehen, da es zu diesem Zeitpunkt noch nichts enthält, somit ist das Verhalten, eine leere Meldung auszugeben in diesem Fall schon mal vollkommen korrekt. $lang wird erst in der Funktion message_die eingebunden (in diesem Fall).
Wir müssen den Fehler stärker eingrenzen. Poste mal die functions.php (es reicht auch die message_die), außerdem kannst du mal ausprobieren ob etwas ausgegeben wird, wenn du eine Echo Anweisung in die Sprachdateien schreibst. Dann wissen wir, ob das Einbinden überhaupt stattfindet.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Hi, vielen Dank erst mal für deine Hilfe. Die aufrufende Datei war index.php! (denn ich hab im IE einfach den ordner meines Forums gewählt.)
Ich habe schon Experimente gemacht, wo ich einige originale phpBB 2.0.21 Dateien in mein Forum kopiert habe, aber ich kam da noch nicht ganz zu einem Ergebnis. Muss noch weiter testen.
Hier mal meine functions.php.
Naja was meinst du genau mit echo einbinden? Bin leider nicht so fit in php. Aber ich arbeite dran. Den Befehl echo kenne ich natürlich aber wo soll ich ihn einbinden?
Jetzt scheint das problem sich bei mir schon auf andere Mods auszuwirken:
http://www.phpbb.de/viewtopic.php?t=132767
Man man man, was ist da nur passiert?
Ich habe schon Experimente gemacht, wo ich einige originale phpBB 2.0.21 Dateien in mein Forum kopiert habe, aber ich kam da noch nicht ganz zu einem Ergebnis. Muss noch weiter testen.
Hier mal meine functions.php.
Naja was meinst du genau mit echo einbinden? Bin leider nicht so fit in php. Aber ich arbeite dran. Den Befehl echo kenne ich natürlich aber wo soll ich ihn einbinden?
Jetzt scheint das problem sich bei mir schon auf andere Mods auszuwirken:
http://www.phpbb.de/viewtopic.php?t=132767
Man man man, was ist da nur passiert?
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Damit meine ich dass du in die Sprachdatei(en) (also lang_main.php) eine Anweisung wie
an das Ende der Dateien (aber vor ?> ) schreibst. Dieser Text wird dann ausgegeben (Ähnlich wie die Warnungen wenn du das error_reporting eingeschaltet hast) wenn die Datei benutzt wird. Falls sie das nicht wird, dann sind wir dem Problem schon mal ein wenig näher gekommen.
Ich habe jetzt leider nicht die Zeit mich mit der Functions.php zu beschäftigen, ich melde mich später noch mal.
Code: Alles auswählen
echo "<br>Sprachdatei [SPRACHE] wurde eingebunden<br>";
Ich habe jetzt leider nicht die Zeit mich mit der Functions.php zu beschäftigen, ich melde mich später noch mal.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Kein Problem lass dir Zeit, will momentan eh keinen bannen!
Ach so. Stimmt so kann man sehen ob sie eingebunden wird oder nicht. Also habe ich gemacht. Wird aber bei der Meldung "Banned" nirgendwo mit angezeigt. In meinem Testboard klappt es allerdings. Ich habe den echo Befehl sogar in die deutsche und in die englische lang_main eingebaut.
Also wird die lang_main definitiv nicht eingebunden! Übrigens habe ich den User über die IP gebannt.
Warte geduldig auf neue Anweisung! (hächel, hächel)
Ach so. Stimmt so kann man sehen ob sie eingebunden wird oder nicht. Also habe ich gemacht. Wird aber bei der Meldung "Banned" nirgendwo mit angezeigt. In meinem Testboard klappt es allerdings. Ich habe den echo Befehl sogar in die deutsche und in die englische lang_main eingebaut.
Also wird die lang_main definitiv nicht eingebunden! Übrigens habe ich den User über die IP gebannt.
Warte geduldig auf neue Anweisung! (hächel, hächel)
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Hm. Wenn der Fehler grundsätzlich immer aufgetaucht wäre hätte ich gesagt, es liegt daran, dass die Sprachdatei nicht da ist wo sie hingehört. Die Default Sprache bei deinem Board scheint Deutsch zu sein, diese sollte also in keinem Fall fehlen (wobei eigentlich die Boardeinstellungen übernommen werden sollten). Das ist eine komische Geschichte. Tritt der Fehler auch beim Bannen auf andere Art auf? Existiert der Gastuser in der DB (ID sollte -1 sein)? Wenn man sich die Fehlermeldungen so betrachtet dürfte eigentlich so gut wie nichts ausgegeben werden bei dieser Fehlermeldung. Kein Titel für die Fehlermeldung, im page_header keine (Text-)Links....
Ich habe nicht gerade das Gefühl dass wir dem Problem wirklich näher kommen, ich kann in keiner der Dateien wirkliche Fehler entdecken. Auch deine Message_die Funktion tut eigentlich genau das was sie sollte: Sie bindet zunächst die Daten ein, die sie noch benötigt.
Ich habe nicht gerade das Gefühl dass wir dem Problem wirklich näher kommen, ich kann in keiner der Dateien wirkliche Fehler entdecken. Auch deine Message_die Funktion tut eigentlich genau das was sie sollte: Sie bindet zunächst die Daten ein, die sie noch benötigt.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Ja hast Recht. Im Header fehlen alle Links bis auf den Link "Sitemap" (ist ein Mod den ich mal eingebaut hatte).
Wenn ich User über den Namen blocke, kommt dagegen die Richtige Meldung: "Du wurdest von diesem Forum verbannt.
Kontaktiere den Administrator, um mehr Informationen zu erhalten."!
Der Fehler tritt also wirklich nur auf, wenn ich über die IP banne.
Meine Boardsprache ist deutsch.
Der Gastuser existiert als "Anonymous" mit ID -1.
edit: ich habe gerade mal die originale common.php in mein Forum kopiert und siehe da, die Fehlermeldung wird jetzt richtig ausgegeben. Allerdings lief das Forum für normale benutzer nicht mehr, weil es nur noch Fehlermeldungen regnete, aber für den gebannten User (ip) klappt es.
Hier mal meine common.php!
Der Fehler liegt an diesem Code Schnippsel:
Denn wenn ich den raus nehme, funktioniert alles. Was tut der eigentlich genau?
Wenn ich User über den Namen blocke, kommt dagegen die Richtige Meldung: "Du wurdest von diesem Forum verbannt.
Kontaktiere den Administrator, um mehr Informationen zu erhalten."!
Der Fehler tritt also wirklich nur auf, wenn ich über die IP banne.
Meine Boardsprache ist deutsch.
Der Gastuser existiert als "Anonymous" mit ID -1.
edit: ich habe gerade mal die originale common.php in mein Forum kopiert und siehe da, die Fehlermeldung wird jetzt richtig ausgegeben. Allerdings lief das Forum für normale benutzer nicht mehr, weil es nur noch Fehlermeldungen regnete, aber für den gebannten User (ip) klappt es.
Hier mal meine common.php!
Der Fehler liegt an diesem Code Schnippsel:
Code: Alles auswählen
// MOD: Advanced Version Check
include_once($phpbb_root_path . 'includes/constants_avc.'.$phpEx);
// Prepare our $version_config array
$sql = "SELECT *
FROM " . VERSION_CONFIG_TABLE;
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, $lang['No_Version_Config'], "", __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$version_config[$row['config_name']] = $row['config_value'];
}
$db->sql_freeresult($result);
//
// If Background Checking is on, run the Version Check -- we're restricting
// this one to an interval only
//
if ( $version_config['background_check'] || defined('IN_AVC') )
{
avc_version_check();
}
elseif ( defined('AVC_ADMIN_INDEX') )
{
if ( !$version_config['show_admin_index'] )
{
avc_one_version_check(PHPBB_MOD_ID);
}
else
{
avc_version_check();
}
}
// END MOD: Advanced Version Check
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Das gehört wohl zu diesem Mod:
http://www.phpbb.com/phpBB/viewtopic.ph ... 70#1506370
Der soll laut Beschreibung selbstständig nach Updates für Mods suchen. In dem Schnipsel ist eigentlich nichts kritisches drin, allerdings weiß ich nicht was in den einzelnen Funktionen passiert. Ich nehme an, das ist in der Datei zu finden die hier
eingebunden wird.
http://www.phpbb.com/phpBB/viewtopic.ph ... 70#1506370
Der soll laut Beschreibung selbstständig nach Updates für Mods suchen. In dem Schnipsel ist eigentlich nichts kritisches drin, allerdings weiß ich nicht was in den einzelnen Funktionen passiert. Ich nehme an, das ist in der Datei zu finden die hier
Code: Alles auswählen
include_once($phpbb_root_path . 'includes/constants_avc.'.$phpEx);
eingebunden wird.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.