Schönheitsfehler im WordPress-Plugin „FireStats“


FireStats
FireStats

Eigentlich wollte ich dazu gar nichts schreiben, aber nun habe ich gesehen, daß einige Leute dieselbe Fehlermeldung, die auch ich neulich von FireStats vorgesetzt bekam, bei Google eingegeben haben:

Wrong parameter count for debug_backtrace()

Offensichtlich hat Google genau zu dem Zeitpunkt das letzte mal meine Seite durchkämmt, als sie gerade von eben dieser unschönen Fehlermeldung übersät war, und dadurch landeten wohl einige Suchende hier – die dann vermutlich gleich wieder abzogen, weil hier ja in Wirklichkeit gar nichts zu dem Thema zu finden war. :)
Um zukünftige Gäste also nicht zu enttäuschen, will ich schnell erklären, wie ich den Fehler wieder losgeworden bin.

Ganz am Ende der Datei firestats/php/utils.php befindet sich folgende Funktion:

function fs_called_by($function)
{
	$bt = debug_backtrace(false);
	for($i = count($bt)-1;$i >= 0;$i--)
	{
		$frame = $bt[$i];
		if ($frame['function'] == $function) return true;
	}
	return false;
}

Die Funktion debug_backtrace() hatte ursprünglich gar keine Parameter. Erst seit PHP 5.2.5 ist es möglich, der Funktion einen Boolean-Wert, also true oder false, zu übergeben:“debug_backtrace(php.net)“:http://www.php.net/manual/de/function.debug-backtrace.php . Wenn man nun aber auf seinem Server ein älteres PHP laufen hat als Version 5.2.5 – was heutzutage durchaus noch oft vorkommt – dann kennt er natürlich nur eine Funktion debug_backtrace() ohne Parameter. Und deshalb streikt er dann auch, wenn FireStats versucht, der Funktion einen Wert zu übergeben.

Die Lösung ist simpel, man muß den Parameter einfach löschen – ich weiß gar nicht, warum er da überhaupt steht, er wird ja sowieso nicht gebraucht. Also einfach Zeile 1042 ändern in:

$bt = debug_backtrace();

Eine Antwort zu “Schönheitsfehler im WordPress-Plugin „FireStats“”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert