joschilein
Multitalent
- 5 Mai 2006
- 1.393
- 151
Ich habe ein kurioses Problem:
In meinem Backend funktioniert alles wunderbar. Nur an einer Stelle gibt es eine nicht enden wollende Seitenladezeit und auch das PHP-Timeout wird völlig ausgehebelt. Dementsprechend bekomme ich weder über Wincachegrind noch über Apache-Logs raus an welcher Stelle vielleicht eine Endlosschleife o.ä. sein könnte.
Eine mögliche Problemstelle sieht quasi so aus:
Wenn ich das 'Test' in 'Test2' ändere und die Url entsprechend anpasse funktioniert alles problemlos. Bis es am nächsten Tag wieder nicht geht und eine Änderung auf 'Test' (oder jeden anderen Wert) dann wieder problemlos funktioniert. Ich spreche also definitiv den richtigen if-Block an, aber ich bekomme in diesem aufgehängten Status keine Debugausgabe raus (weder im Block noch vor dem Block, die() funktioniert auch nicht) und kann sogar die kompletten Anweisungen im Block auskommentieren und es passiert dennoch nichts. Das Problem kann also eigentlich auch nicht in den Aktionen liegen, die im if-Block gemacht werden. Wenn ich eine Url verwende, die in keinem Block gefangen wird, funktioniert der Rest drumherum auch problemlos - im Sinne von Seite wird geladen mit Fehlermeldung "Keine passende Eingabe" etc.
Als ob PHP wegen diesem Block (für diese Anfrage) komplett eingefroren wird. Warum gehen nicht mal die()'s vor dem Block? Warum kommt kein Timeout?
In meinem Backend funktioniert alles wunderbar. Nur an einer Stelle gibt es eine nicht enden wollende Seitenladezeit und auch das PHP-Timeout wird völlig ausgehebelt. Dementsprechend bekomme ich weder über Wincachegrind noch über Apache-Logs raus an welcher Stelle vielleicht eine Endlosschleife o.ä. sein könnte.
Eine mögliche Problemstelle sieht quasi so aus:
PHP:
$section = $_GET['section'];
if ($section == 'Test'){
KlasseABC::machmal();
} elseif ($section == 'Wasganzanderes') {
KlasseABC::machmalwasanderes();
} elseif (...) {
// ...
} else {
echo 'So geht es aber nicht.';
}
Wenn ich das 'Test' in 'Test2' ändere und die Url entsprechend anpasse funktioniert alles problemlos. Bis es am nächsten Tag wieder nicht geht und eine Änderung auf 'Test' (oder jeden anderen Wert) dann wieder problemlos funktioniert. Ich spreche also definitiv den richtigen if-Block an, aber ich bekomme in diesem aufgehängten Status keine Debugausgabe raus (weder im Block noch vor dem Block, die() funktioniert auch nicht) und kann sogar die kompletten Anweisungen im Block auskommentieren und es passiert dennoch nichts. Das Problem kann also eigentlich auch nicht in den Aktionen liegen, die im if-Block gemacht werden. Wenn ich eine Url verwende, die in keinem Block gefangen wird, funktioniert der Rest drumherum auch problemlos - im Sinne von Seite wird geladen mit Fehlermeldung "Keine passende Eingabe" etc.
Als ob PHP wegen diesem Block (für diese Anfrage) komplett eingefroren wird. Warum gehen nicht mal die()'s vor dem Block? Warum kommt kein Timeout?