Seite 1 von 5

Fehlermeldung beim Aufrufen eines nicht existierenden Beitra

Verfasst: 16.01.2010 17:34
von Dr.Death
Hallo zusammen,

jetzt hab sogar ich mal ein Problem, welches ich nicht durch Eure Hilfe lösen kann. ( Ich habe gerade ein Brett vor dem Kopf )

Beim aufrufen eines nicht existierenden Beitrags:

http://www.lpi-clan.de/viewtopic.php?f=26&t=4299

erhalte ich die Fehlermeldung:
Warning: strtr() [function.strtr]: The second argument is not an array. in /var/www/web16/html/phpbb3/includes/session.php on line 2183
Die includes/sessions.php Zeile 2183 besagt nur:

Code: Alles auswählen

return strtr(@gmdate($date_cache[$format]['format_long'], $gmepoch + $zone_offset), $date_cache[$format]['lang']);
Ich habe mir bereits das zweite Argument ausgegeben ( $date_cache[$format]['lang'] ) und es ist : Leer !
Bei jedem vorhandenem Beitrag ist es ein gefülltes Array.

Die Variable $date_cache[$format]['lang'] wird im folgenden Block gefüllt:

Code: Alles auswählen

			$date_cache[$format] = array(
				'is_short'		=> strpos($format, '|'),
				'format_short'	=> substr($format, 0, strpos($format, '|')) . '||' . substr(strrchr($format, '|'), 1),
				'format_long'	=> str_replace('|', '', $format),
				'lang'			=> $this->lang['datetime'],
			); 
Demnach ist:
$date_cache[$format]['lang'] = $this->lang['datetime']


Aber wenn ein Topic nicht existiert, wird bei mir anscheinend $this->lang['datetime'] nicht gefüllt ;-(

In der viewtopic.php ist dies der Auslöser:

Code: Alles auswählen

	trigger_error('NO_TOPIC');
Sobald man also auf ein nicht vorhandenen ( oder mit fehlender Berechtigung ) Beitrag verweist, wird der Fehler ausgelöst.

Wo starte ich bei der Fehlersuche ???

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Beitra

Verfasst: 16.01.2010 17:38
von bantu

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Beitra

Verfasst: 16.01.2010 18:23
von Dr.Death
Mit Hilfe von Bantu haben wir den Fehler finden können.

Ich nutze u.a. den MOD: Ultimate Points

In einer "alten" Version, oder aber auch durch meine Unachtsamkeit wurde in die Datei " viewtopic.php " folgende Zeile Eingebaut:

Code: Alles auswählen

$user->add_lang('mods/points');
Durch diverse Tests in meinem Forum und mit Bantu's Hilfe haben wir ermittelt, das ein "$user->add_lang" nur dann eingesetzt werden kann, wenn vorher ein "$user->setup" stattgefunden hat.

In der aktuellen Version vom MOD: Ultimate Points steht auch folgende Einbauanleitung:
Find

Code: Alles auswählen

// Start session management
$user->session_begin();
$auth->acl($user->data);
Add after

Code: Alles auswählen

// Start Ultimate Points
$user->setup('mods/points');
// End Ultimate Points
Somit habe ich also einen klassischen Einbau Fehler begannen oder ein falschen Update Einbau vorgenommen.

Asche auf mein Haupt :oops: :o :roll:

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Beitra

Verfasst: 16.01.2010 18:30
von Flashen-us
Naja, sowas kann jedem passieren und wenn man dann Hilfe von einem der phpBB-Entwickler hat ist das doch auch eine feine Sache. :grin:

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Be

Verfasst: 13.01.2012 23:44
von Halloween
Ich hab das gleiche Problem wenn ich meineseite.de/viewtopic.php aurufe. Bekomm die gleiche Fehlermeldung angezeigt. In der session.php ist die Problemzeile genau die gleiche wie oben schon genannt wurde.
Nur hab ich keinen "Punkte-Mod" installiert. Bei mir liegt es wohl an was anderem.
Das ist die genaue Fehlermeldung:

Code: Alles auswählen

Warning: strtr() [function.strtr]: The second argument is not an array in public_html/includes/session.php on line 2175

Warning: strtr() [function.strtr]: The second argument is not an array in public_html/includes/session.php on line 2175

Warning: Cannot modify header information - headers already sent by (output started at public_html/includes/session.php:2175) in public_html/includes/functions.php on line 4808

Warning: Cannot modify header information - headers already sent by (output started at public_html/includes/session.php:2175) in public_html/includes/functions.php on line 4810

Warning: Cannot modify header information - headers already sent by (output started at public_html/includes/session.php:2175) in public_html/includes/functions.php on line 4811

Warning: Cannot modify header information - headers already sent by (output started at public_html/includes/session.php:2175) in public_html/includes/functions.php on line 4812

Fatal error: template->_tpl_load_file(): File /message_body.html does not exist or is empty in public_html/includes/functions_template.php on line 63
In der funtions.php Datei geht es um folgende Zeilen:

Code: Alles auswählen

	// application/xhtml+xml not used because of IE
	header('Content-type: text/html; charset=UTF-8');
	header('Cache-Control: private, no-cache="set-cookie"');
	header('Expires: 0');
	header('Pragma: no-cache');

	return;
Nachdem ich das komplett gelöscht habe wurde zumindest die funtions.php Meldung entfernt. Ob das richtig war die Zeilen zu entfernen weis ich nicht. Kann jedenfalls nichts erkennen ^^.

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Be

Verfasst: 14.01.2012 00:39
von Miriam
Also das Gelöschte pack mal besser wieder rein. Die Fehlermeldung wird "provoziert", weil "Output" vor dem Senden des Headers geschrieben wurde. Und das gibt eben Stress.
Und dieser Output ist die Fehlermeldung aus der /includes/session.php.

Also bei mir steht auf Zeile 2175 der /includes/session.php nichts, was ein Array als Argument verlangt.
Was steht denn bei dir? Verlinke mal bitte deine /includes/session.php mittels PasteBin.

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Be

Verfasst: 14.01.2012 00:41
von Miriam
Miriam hat geschrieben:Also das Gelöschte pack mal besser wieder rein. Die Fehlermeldung wird "provoziert", weil "Output" vor dem Senden des Headers geschrieben wurde. Und das gibt eben Stress.
Und dieser Output ist die Fehlermeldung aus der /includes/session.php.

Also bei mir steht auf Zeile 2175 der /includes/session.php nichts, was ein Array als Argument verlangt.
Was steht denn bei dir? Verlinke mal bitte deine /includes/session.php mittels PasteBin.
Und zeig mal bitte auch gleich die /includes/functions.php her.

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Be

Verfasst: 14.01.2012 01:07
von Halloween

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Be

Verfasst: 14.01.2012 09:08
von Miriam
Auf welcher Board-Version bist denn du? Doch nicht 3.0.10.

Re: Fehlermeldung beim Aufrufen eines nicht existierenden Be

Verfasst: 14.01.2012 10:26
von Halloween
3.0.9
Edit:
Hab jetzt mal nen Update gemacht.
Fehlermeldung sieht jetzt so aus:

Code: Alles auswählen

Warning: strtr() [function.strtr]: The second argument is not an array in public_html/includes/session.php on line 2174

Warning: strtr() [function.strtr]: The second argument is not an array in public_html/includes/session.php on line 2174

Warning: Cannot modify header information - headers already sent by (output started at public_html/includes/session.php:2174) in public_html/includes/functions.php on line 4861

Warning: Cannot modify header information - headers already sent by (output started at public_html/includes/session.php:2174) in public_html/includes/functions.php on line 4862

Warning: Cannot modify header information - headers already sent by (output started at public_html/includes/session.php:2174) in public_html/includes/functions.php on line 4863

Fatal error: template->_tpl_load_file(): File /message_body.html does not exist or is empty in public_html/includes/functions_template.php on line 63
Funtion.php: http://pastebin.com/vsMZRDqt
Session.php: http://pastebin.com/5r4X8zPD

Ein weiteres Problem ist dazu gekommen. Der Username etc wird im Post Beitrag nicht mehr angezeigt. Ich weis nicht ob es am Update liegt oder am Mod den ich die letzten Tagen verbaut habe. Ich hoffe viewtopic.php ist die richtige Datei wo der Fehler drinn steckt: http://pastebin.com/EB8GG7Sp