Kleine Fehler nach erweitertem Debug

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Malte

Kleine Fehler nach erweitertem Debug

Beitrag von Malte »

Hallo,

ich habe den MOD Debug Errors and Notices installiert, der mir Fehler in meinem Forum genauer anzeigt.

Aktuell habe ich seltsamerweise aber folgende Fehleranzahl:
Fehler: 16 Protokolleinträge
Einfache Fehler: 3358 Protokolleinträge
Das sind fast immer die gleichen Fehler, aber ich weiß nicht ganz genau, wie ich sie beheben soll. :(

Ich bin nicht unbedingt der Experte für php-Codes. :P

Ich stelle euch mal erstmal die 3 häufigsten Fehler vor und hoffe, dass ihr mir beim beheben ein wenig behilflich sein könnt. Dass ich erstmal nur 3 angebe ist aus Übersichtlichkeitsgründen, wenn ihr mir bei den 3 helfen konntet, dann werde ich noch ein paar weitere folgen lassen. :P

1. Die 16 Protokolleinträge im ersten Fehlerprotokoll hatten waren alle die selben:
IP-Adressen-/Browser-/X_FORWARDED_FOR-Überprüfung gescheitert
»Benutzer-IP „[zensiert]“ geprüft gegen Sitzungs-IP „[zensiert]“, Benutzer-Browser „mozilla/5.0 (windows nt 6.1; wow64) applewebkit/535.11 (khtml, like gecko) chrome/17.0.963.79 safari/535.11“ gegen Sitzungs-Browser „mozilla/5.0 (windows nt 6.1; wow64) applewebkit/535.11 (khtml, like gecko) chrome/17.0.963.79 safari/535.11“ und X_FORWARDED_FOR-Angabe des Benutzers „“ gegen X_FORWARDED_FOR-Angabe der Sitzung „“.
Die beiden IP-Adressen habe ich zensiert, aber es waren auf jeden Fall, 2 verschiedene IP-Adressen.

2.
Seite: index.php
Datei: [ROOT]/includes/automatic_dst.php
Zeile: 31 [PHP Notice]

Undefined index: 1
Die Datei automatic_dst.php habe ich mal in den Pastebin getan:
https://www.phpbb.de/support/pastebin.p ... iew&s=1001

3.
Seite: -
Datei: [ROOT]/includes/functions_posting.php
Zeile: 988 [PHP Notice]

Undefined variable: sql
Die Datei functions_posting.php habe ich mal in den Pastebin getan:
https://www.phpbb.de/support/pastebin.p ... iew&s=1002

Ich hoffe ihr könnt mir bei meinen 3 Fehlermeldungen ein wenig behilflich sein, ich vertraue auf eure Hilfe.

Viele Grüße
Malte
Malte

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Malte »

Malte hat geschrieben:Hallo,

ich habe den MOD Debug Errors and Notices installiert, der mir Fehler in meinem Forum genauer anzeigt.

Aktuell habe ich seltsamerweise aber folgende Fehleranzahl:
Fehler: 16 Protokolleinträge
Einfache Fehler: 3358 Protokolleinträge
Das sind fast immer die gleichen Fehler, aber ich weiß nicht ganz genau, wie ich sie beheben soll. :(

Ich bin nicht unbedingt der Experte für php-Codes. :P

Ich stelle euch mal erstmal die 3 häufigsten Fehler vor und hoffe, dass ihr mir beim beheben ein wenig behilflich sein könnt. Dass ich erstmal nur 3 angebe ist aus Übersichtlichkeitsgründen, wenn ihr mir bei den 3 helfen konntet, dann werde ich noch ein paar weitere folgen lassen. :P

1. Die 16 Protokolleinträge im ersten Fehlerprotokoll hatten waren alle die selben:
IP-Adressen-/Browser-/X_FORWARDED_FOR-Überprüfung gescheitert
»Benutzer-IP „[zensiert]“ geprüft gegen Sitzungs-IP „[zensiert]“, Benutzer-Browser „mozilla/5.0 (windows nt 6.1; wow64) applewebkit/535.11 (khtml, like gecko) chrome/17.0.963.79 safari/535.11“ gegen Sitzungs-Browser „mozilla/5.0 (windows nt 6.1; wow64) applewebkit/535.11 (khtml, like gecko) chrome/17.0.963.79 safari/535.11“ und X_FORWARDED_FOR-Angabe des Benutzers „“ gegen X_FORWARDED_FOR-Angabe der Sitzung „“.
Die beiden IP-Adressen habe ich zensiert, aber es waren auf jeden Fall, 2 verschiedene IP-Adressen.

2.
Seite: index.php
Datei: [ROOT]/includes/automatic_dst.php
Zeile: 31 [PHP Notice]

Undefined index: 1
Die Datei automatic_dst.php habe ich mal in den Pastebin getan:
https://www.phpbb.de/support/pastebin.p ... iew&s=1001

3.
Seite: -
Datei: [ROOT]/includes/functions_posting.php
Zeile: 988 [PHP Notice]

Undefined variable: sql
Die Datei functions_posting.php habe ich mal in den Pastebin getan:
https://www.phpbb.de/support/pastebin.p ... iew&s=1002

Ich hoffe ihr könnt mir bei meinen 3 Fehlermeldungen ein wenig behilflich sein, ich vertraue auf eure Hilfe.

Viele Grüße
Malte
Miri pt2

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Miri pt2 »

zu 3.:
Die variable $sql ist in der Zeile 988 Deiner php Datei noch garnicht bekannt, daher gibt es Stress mit der Funktion str_replace()
Finde in der Zeile 980 ff. der Datei /includes/functions_posting.php:

Code: Alles auswählen

/**
* Topic Review
*/
//-- mod: Prime Trash Bin (Posts) -------------------------------------------//
// When doing topic review, get only posts that aren't mock-deleted.
    include ($phpbb_root_path . 'includes/prime_trash_bin_a.' . $phpEx);
    if (stifle_topics_enabled())
    {
        $sql = str_replace('AND u.user_id = p.poster_id', 'AND u.user_id = p.poster_id AND p.post_deleted_time = 0', $sql);
    }
//-- end: Prime Trash Bin (Posts) -------------------------------------------//   
Und lösche es dort. Diese Code dort steht dort komplett falsch.

zu 2.:
finde in der automatic_dst.php:

Code: Alles auswählen

    // Time zone not yet converted, so lets temporarily do just that -  if there's no entry to convert to reset to board time   
danach füge ein:

Code: Alles auswählen

    var_dump($user->data['user_timezone']); 
und poste den neuen Output hier im Thema.

zu 1.: k.A.

zu 0.: Mit dieser Art von Bumping machst Du Dir hier keine Freunde. //das war OT
Malte

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Malte »

Zur 3.:
Soll ich den gesamten Code, den du mir vorgegeben hast löschen? Das Zeuchs mit den Trash Bin gehört zu einer ganz eigenartigen Änderung in der Datei nach der install.xml von dem MOD:

Code: Alles auswählen

<edit>
				<comment lang="en">The first FIND is just to get your cursor into position so the next FIND will locate the correct line.</comment>

				<find><![CDATA[function topic_review(]]></find>
				<find><![CDATA[	$result = $db->sql_query($sql);]]></find>
				<action type="before-add"><![CDATA[//-- mod: Prime Trash Bin (Posts) -------------------------------------------//
// When doing topic review, get only posts that aren't mock-deleted.
	include ($phpbb_root_path . 'includes/prime_trash_bin_a.' . $phpEx);
	if (stifle_topics_enabled())
	{
		$sql = str_replace('AND u.user_id = p.poster_id', 'AND u.user_id = p.poster_id AND p.post_deleted_time = 0', $sql);
	}
//-- end: Prime Trash Bin (Posts) -------------------------------------------//
]]></action>
			</edit>
Zu 2.:
Also nach der Änderung zeigt der erstmal nichts an, ich sage mal, was demnächst passiert.
Malte

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Malte »

So zu 3.: So weit ich das nun nochmal kontrolliert habe, hat der angegebene Vorgang, den Sinn, dass man schlecht nach $result = $db->sql_query($sql); suchen kann, weil das ganz oft vorkommt und dann lieber erst nach dem anderen Sucht, um das das "nächstgelegene" $result = $db->sql_query($sql); zu erreichen. Also habe ich den Text einfach an der falschen Stelle eingefügt, gelle? Also ich habe das mal geändert und dann kamen keine weiteren Fehler mehr vor.

Zu 2.: Also, ich erkenne überhaupt keine Meldungen, die nach dieser Änderung sonderlich angezeigt werden, Tatsache ist nur, dass der Fehler bestehen bleibt, nur dass es jetzt, weil wir die eine Zeile da eingefügt haben, nicht mehr Zeile 31 sondern Zeile 32 ist.
Miri pt2

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Miri pt2 »

zu 2.: Irgendwann wird doch die automatic_dst.php aufgerufen... Dann sollte etwas mehr zur Anzeige kommen.
Das Problem ist, dass die User-Daten für die Zeitzone nicht mit den Indizes des $timetable zusammen passen.
$user->data['user_timezone'] sollte ein String sein, der so z.B. aussieht '1.00'. Aber es wird 1 zurückgegeben. Diese könnte bspw. durch eine Variablenanpassung des php Interpreters erfolgen, weil der nicht genau weiss, was er mit den Daten machen soll; aus welchen Grund auch immer.

Dein $timetable ist so aufgebaut:

Code: Alles auswählen

array('1.00' => 'Europe/Berlin'); 
...und 1 ist nunmal <> '1.00',
Seite: index.php
Datei: [ROOT]/includes/automatic_dst.php
Zeile: 31 [PHP Notice]

Undefined index: 1 <<---- das sollte '1.00' sein
so kann nichts bei der Suche nach den Indizes gefunden werden.

Ich erwarte also eine Ausgabe, die so aussehen könnte: string(6) "-10.00".
Wenn Du diese Daten hast, können wir weitermachen. (Mußt sie natürlich auch posten. :lol: )

Zum anderen Problem des Codefindens: Dein Code, den ich als "dort falsch"deklariert habe, stand an einer mehr als sinnfreien Stelle:

Code: Alles auswählen

} // <<---- Hier ist das Ende der vorherigen Funktion

/**
* Topic Review
*/
//-- mod: Prime Trash Bin (Posts) -------------------------------------------//
// When doing topic review, get only posts that aren't mock-deleted.
    include ($phpbb_root_path . 'includes/prime_trash_bin_a.' . $phpEx);
    if (stifle_topics_enabled())
    {
        $sql = str_replace('AND u.user_id = p.poster_id', 'AND u.user_id = p.poster_id AND p.post_deleted_time = 0', $sql);
    }
//-- end: Prime Trash Bin (Posts) -------------------------------------------//
function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id = 0, $show_quote_button = true) // <<---- Und hier beginnt die neue Funktion.     
Da stand noch nie $result = $db->sql_query($sql);; weder jetzt, noch damals als Du den Code eingefügt hast.... Das nur am Rande. 8)
Malte

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Malte »

Zu 2.:
Also irgend etwas neu ausgegeben wir da nichts, die neueste Meldung ist zum Beispiel:

Code: Alles auswählen

Seite: index.php
Datei: [ROOT]/includes/automatic_dst.php
Zeile: 32	[PHP Notice]

Undefined index: 1
Das ist die gleiche Meldung wie sonst, da steht nichts weiter dabei.

Zu 3.:

Wäre es denn nun korrekt:
https://www.phpbb.de/support/pastebin.p ... iew&s=1009

Meiner Meinung nach ist das nun so. :mrgreen:

Gruß
Malte
Miri pt2

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Miri pt2 »

Miri pt2 hat geschrieben:zu 3.:
Die variable $sql ist in der Zeile 988 Deiner php Datei noch garnicht bekannt, daher gibt es Stress mit der Funktion str_replace()
Finde in der Zeile 980 ff. der Datei /includes/functions_posting.php:

Code: Alles auswählen

/**
* Topic Review
*/
//-- mod: Prime Trash Bin (Posts) -------------------------------------------//
// When doing topic review, get only posts that aren't mock-deleted.
    include ($phpbb_root_path . 'includes/prime_trash_bin_a.' . $phpEx);
    if (stifle_topics_enabled())
    {
        $sql = str_replace('AND u.user_id = p.poster_id', 'AND u.user_id = p.poster_id AND p.post_deleted_time = 0', $sql);
    }
//-- end: Prime Trash Bin (Posts) -------------------------------------------//    
Und lösche es dort. Diese Code dort steht dort komplett falsch.
Ich habe die Kardinal-Begriffe etwas hervorgehoben. Du hast aber den Code an beiden Stellen gelöscht; der kam zweimal vor.

Zum Anderen Problem: Daß sich diese fehlermeldung in den Logs nicht ändert, ist natürlich... Ich möchte den Output auf einer Deiner phpBB Scriptseiten sehen; also nicht im LOG deiner Mod, sondern direkt auf der Webseite.
Malte

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Malte »

Ich habe das doch gelöscht? Außer dem kleinen Kommentar mit dem Topic Review habe ich die gesamte Stelle gelöscht, aber es ist ja nur ein Kommentar. :P
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Kleine Fehler nach erweitertem Debug

Beitrag von Miriam »

Dann habe ich das übersehen.... :oops:

Zum Thema #2:
Hast Du mal anstatt dieses Codes in der /includes/automatic_dst.php (ab Zeile 30)

Code: Alles auswählen

                $timetable = automatic_dst_get_timetable();
                $user->data['user_timezone'] = ($timetable[$user->data['user_timezone']]) ? $timetable[$user->data['user_timezone']] : $user->lang['tz_zones'][$user->data['user_timezone']] 
diesen hier probiert?

Code: Alles auswählen

                $user->data['user_timezone'] = (float)$user->data['user_timezone'];
                $timetable = $user->lang[$lang]['datetime']['tz_zones'];
                $user->data['user_timezone'] = ($user->lang['tz_zones'][$user->data['user_timezone']]) ? $user->lang['tz_zones'][$user->data['user_timezone']] : $user->lang['tz_zones'][$user->data['user_timezone']]; 
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“