"The second argument is not an array" - Fehler

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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.
Antworten
capsaicin
Mitglied
Beiträge: 58
Registriert: 03.11.2007 00:38

"The second argument is not an array" - Fehler

Beitrag von capsaicin »

Ich wollte ein Forum aufrufen und habe dazu diese Nr. in der Adresszeile geändert. Dabei hab ich mich vertippt und habe jetzt plötzlich diese Fehlermeldung vor mir:

Code: Alles auswählen

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

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

Fatal error: template->_tpl_load_file(): File /message_body.html does not exist or is empty in .\includes\functions_template.php on line 63

Die Datei message_body.html ist verhanden und hat auch einen Inhalt, daher verstehe ich das Problem nicht. :(
Habe die Datei auch ausgetauscht, hat nix geändert. :-?
Benutzeravatar
Würzi
Ehemaliges Teammitglied
Beiträge: 3187
Registriert: 30.10.2005 02:51
Wohnort: Niedernberg
Kontaktdaten:

Re: "The second argument is not an array" - Fehler

Beitrag von Würzi »

capsaicin hat geschrieben:Ich wollte ein Forum aufrufen und habe dazu diese Nr. in der Adresszeile geändert. Dabei hab ich mich vertippt...
Moin,

also ich kann mit deiner Frage leider rein gar nichts anfangen. :-?

- Was hast du am Board verändert bevor du diese Fehlermeldung bekommen hast?
- Mods verbaut?
- Link zum Board?
- Version des Boards?

Mfg dat Wuerzi
Kein Support per PN, dafür ist das Forum da! Eine PN hilft einen, ein öffentlicher Beitrag allen. - Styles für phpbb3
capsaicin
Mitglied
Beiträge: 58
Registriert: 03.11.2007 00:38

Re: "The second argument is not an array" - Fehler

Beitrag von capsaicin »

Also das war so:
ich war in forum/viewforum.php?f=1
und wollte zu forum/viewforum.php?f=3

hatte aber keine lust, erst auf den Index und dann ins Forum 3, also habe ich die 1 weggemacht und wollte eine 3 hinschreiben. Da wurde aber 33 draus und soviele Foren hab ich gar nicht.
Da hätte ja nun stehen sollen "Das Forum gibts nicht", aber stattdessen kommt der Fehler. Der Fehler ist sonst nirgendwo zu sehen, habe den nur durch diesen Zufall bemerkt!

Ich hab einige Mods installiert, kann man das auf bestimmte Funktionen/Dateien eingrenzen, die so einen Fehler verursachen können?
Google gibt nicht viel her und auf phpbb.com wird ein ähnlicher Fehler erwähnt, aber der soll aus der Sprachdatei resultieren. Die hab ich schon getestet und neu abgespeichert, da ändert sich nichts.
die sessions.php hab ich auch bearbeitet im Rahmen einiger Mods, wenn ich alle Änderungen rausnehme, wandert der Fehler zu Zeile 2167, die Ursache des Fehlers scheint also nicht in der sessions.php zu liegen.
Ich versteh auch nicht, wieso eine definitiv vorhandene Datei nicht gefunden wird. :(

Zum Forum an sich:
Mein Forum hatte einige Macken und Mods, die ich doch nicht mehr will, deshalb hatte ich mir auf xampp ein neues Forum erstellt und dann die Datenbank vom 1. Forum mit diesem Tool Kit bereinigen lassen --> alles raus, was nicht reingehört. Ich hab also gerade 2 Foren. Die alte Datenbank (ohne Modifikationen) soll ins neue Forum und dann eben noch die relevanten Änderungen der eingebauten Modifikationen.
Der Fehler tritt in dem neuen Forum auf, das sich auf Xampp befindet. :cry:
Benutzeravatar
AmigaLink
Mitglied
Beiträge: 1417
Registriert: 09.06.2003 21:56
Wohnort: NRW
Kontaktdaten:

Re: "The second argument is not an array" - Fehler

Beitrag von AmigaLink »

Das ist ein Klassischer Fall von: "Was sollen wir dir dazu jetzt sagen?"
Auch wenn du jetzt sehr schön Erklärt hast was du gemacht hast, ist im Endeffekt doch niemandem Bekannt was du denn nun genau gemacht hast. Somit können wir jetzt eigentlich nur Helfen indem wir Tipps zur Eingrenzung der Fehlerquelle geben.

Es wäre z.B. sehr nützlich gewesen wenn du die -in der Fehlermeldung angegebene- Zeile Posten würdest. Am bestem nen Codeblock +/- 10 Zeilen bei dem du angibst welche Zeile die bemängelte ist.
Da du gesagt hast das die Zeilenummer beim entfernen aller Änderungen 2167 ist, hab ich mal in eine meiner Dateien geschaut die noch Original sein müsste. Mein Ergebnis ist das es sich um

Code: Alles auswählen

		return strtr(@gmdate($date_cache[$format]['format_long'], $gmepoch + $zone_offset), $date_cache[$format]['lang']);
handeln müsste. Das ist die letzte Zeile der Funktion format_date. :)
Der Fehler besagt nun das das zweite Argument von strstr Fehlerhaft ist. Das zweite Argument ist $date_cache[$format]['lang']
Wenn wir nun im Code ein paar Zeilen hoch gehen, wird dort $date_cache[$format]['lang'] definiert indem auf die Sprachdateien zugegriffen wird. Und zwar auf diesen Teil der common.php (aus deinem Language Ordner)

Code: Alles auswählen

	'datetime'			=> array(
		'TODAY'		=> 'Heute',
		'TOMORROW'	=> 'Morgen',
		'YESTERDAY'	=> 'Gestern',
		'AGO'		=> array(
			0		=> 'vor weniger als einer Minute',
			1		=> 'vor %d Minute',
			2		=> 'vor %d Minuten',
			60		=> 'vor 1 Stunde',
		),

		'Sunday'	=> 'Sonntag',
		'Monday'	=> 'Montag',
		'Tuesday'	=> 'Dienstag',
		'Wednesday'	=> 'Mittwoch',
		'Thursday'	=> 'Donnerstag',
		'Friday'	=> 'Freitag',
		'Saturday'	=> 'Samstag',

		'Sun'		=> 'So',
		'Mon'		=> 'Mo',
		'Tue'		=> 'Di',
		'Wed'		=> 'Mi',
		'Thu'		=> 'Do',
		'Fri'		=> 'Fr',
		'Sat'		=> 'Sa',

		'January'	=> 'Januar',
		'February'	=> 'Februar',
		'March'		=> 'März',
		'April'		=> 'April',
		'May'		=> 'Mai',
		'June'		=> 'Juni',
		'July'		=> 'Juli',
		'August'	=> 'August',
		'September' => 'September',
		'October'	=> 'Oktober',
		'November'	=> 'November',
		'December'	=> 'Dezember',

		'Jan'		=> 'Jan',
		'Feb'		=> 'Feb',
		'Mar'		=> 'Mär',
		'Apr'		=> 'Apr',
		'May_short'	=> 'Mai',	// Short representation of "May". May_short used because in English the short and long date are the same for May.
		'Jun'		=> 'Jun',
		'Jul'		=> 'Jul',
		'Aug'		=> 'Aug',
		'Sep'		=> 'Sep',
		'Oct'		=> 'Okt',
		'Nov'		=> 'Nov',
		'Dec'		=> 'Dez',
	),
Der Hinweis den du auf phpbb.com gefunden hast, ist somit durchaus richtig. :)
Nun sagst du das du die Sprachdateien bereits geprüft und erneuert hast. Prüf das nochmals indem du die die Datei des Fehlerfreien Forums einspielst. Wenn der Fehler bleibt obwohl du die Datei des Funktionierenden Forums nutzt, musst du einen Schritt weiter gehen. Und zwar wird nur auf die Sprachdatei zugegriffen, wenn das Datumsformat nicht an die Funktion format_date übergeben wurde.
An dieser stelle wird es mir jetzt etwas zu aufwändig. Vor allem weil ich keine Zeit mehr habe, da ich zum Grillen eingeladen bin. Du müsstest jetzt nämlich ermitteln wo du Funktion aufgerufen wird. Da der Fehler kommt wenn du die viewforum.php mit einem falschen Parameter aufrufst, müsstest du also in der viewforum.php nach der stelle suchen die auf diesen falschen Aufruf reagiert und den ganzen weg -bis zum Aufruf der format_date verfolgen. Dort müsstest du schauen wie die Variable heist die als zweites Argument (beim aufruf von format_date) genutzt wird. (Ich denke mal sie heist $format.) Wenn du das weisst, suchst du die stelle an der diese Variable definiert bzw. bearbeitet wird. In dem Bereich müsste ein Fehler sein.

Wie du siehst recht aufwändig.
Da du ein Funktionierendes und ein Fehlerhaftes Forum hast, würde ich empfehlen du nimmst das Funktionierende, baust da (nach und nach) sehr Gewissenhaft alles nochmal aus das du in dem Fehlerhaften nicht mehr drin hast und prüfst dabei regelmäßig auf Fehler.
Das dürfte einfacher sein als Fehleranalyse. ;)
Antworten

Zurück zu „[3.0.x] Mod Support“