phpBB 2.0.21 - Fehler in der session.php

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.
Benutzeravatar
x16
Mitglied
Beiträge: 472
Registriert: 03.11.2005 22:35
Wohnort: Hamburg
Kontaktdaten:

Beitrag von x16 »

Also hier die Antwort von error_reporting(E_ALL);


Ich habe zwar Mods eingebaut, viele sogar aber ich habe schon testweise die originale session.php hochgeladen mit dem gleichen Ergebnis.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

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.
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
Ich frage mich außerdem warum es nicht zu sql Fehlern führt wenn das table_prefix nicht gefunden wird.

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.
Benutzeravatar
x16
Mitglied
Beiträge: 472
Registriert: 03.11.2005 22:35
Wohnort: Hamburg
Kontaktdaten:

Beitrag von x16 »

Das ist die session.php! Komisch oder?

Hier mal beide Dateien:
session.php
functions_ip_track.php
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

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

Code: Alles auswählen

$q1 = "SELECT *
       FROM ". $table_prefix ."ip_tracking_config"; 
$r1 = $db -> sql_query($q1); 
$row1 = $db -> sql_fetchrow($r1); 
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.
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.
Benutzeravatar
x16
Mitglied
Beiträge: 472
Registriert: 03.11.2005 22:35
Wohnort: Hamburg
Kontaktdaten:

Beitrag von x16 »

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?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Damit meine ich dass du in die Sprachdatei(en) (also lang_main.php) eine Anweisung wie

Code: Alles auswählen

echo "<br>Sprachdatei [SPRACHE] wurde eingebunden<br>";
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.
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.
Benutzeravatar
x16
Mitglied
Beiträge: 472
Registriert: 03.11.2005 22:35
Wohnort: Hamburg
Kontaktdaten:

Beitrag von x16 »

Kein Problem lass dir Zeit, will momentan eh keinen bannen! :D
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) :grin:
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

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.
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.
Benutzeravatar
x16
Mitglied
Beiträge: 472
Registriert: 03.11.2005 22:35
Wohnort: Hamburg
Kontaktdaten:

Beitrag von x16 »

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:

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
Denn wenn ich den raus nehme, funktioniert alles. Was tut der eigentlich genau?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

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

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.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“