1 Stimmen

header("location") verursacht [500] internen Serverfehler?

Ich kann nicht herausfinden, was diesen Fehler verursachen könnte. Mein Apache-Protokoll zeichnet keine Fehler im Zugriffsprotokoll oder im Fehlerprotokoll bezüglich der Seite auf, doch immer wenn ich die header() Zeile erhalte ich einen 500 Internal Server Error. Es kann nicht von PHP's fatalem Fehler kommen, wenn der Inhalt ausgegeben wird, bevor header() aufgerufen wird, würde das nicht zu einem 500er führen, oder?

header("Location: /offices/page-".ceil($cache->size() / 15));

Ich habe getestet $cache->size() und es gibt 22 zurück, also sollte es eine 2 an das Ende der Zeichenfolge anhängen und umleiten. Ich habe ob_start() aufgerufen, bevor die header() aber ich habe versucht, die ob_end_clean() direkt davor und es tat sich immer noch nichts...

Ich habe sogar versucht, die header("Location: /offices"); ganz am Anfang der Datei, und ich erhalte immer noch eine 500.

8voto

T.Todua Punkte 48569

Ein weiterer Grund könnte sein, dass Sie Folgendes entfernen müssen Raum nach location :

header("location :
header("location:

Wenn das nicht Ihr Problem ist, dann versuchen Sie, die php & apache Fehlerprotokolle .

4voto

deceze Punkte 489288

Versuchen Sie, eine vollständig geformte URL zu verwenden:

header("Location: http://{$_SERVER['HTTP_HOST']}/offices/page-".ceil($cache->size() / 15));

4voto

jasonbar Punkte 12905

Das Skript wird nach Ihrem header()-Aufruf weiter ausgeführt. Sie müssen exit; unmittelbar danach. Dies sollte jedoch keinen 500-Fehler verursachen.

Bearbeiten: Offensichtlich hat dies funktioniert - was bedeutet, dass Ihr Problem wahrscheinlich in einem verwandten Code weiter unten auf der Seite liegt?

1voto

RaininDown Punkte 11

Bei mir war es genauso. Nachdem ich mir wiederholt den Kopf am Monitor angeschlagen habe, ist nicht die Zeile header("Location: myPage.php"); defekt, sondern myPage.php! Versuchen Sie, auf eine andere Seite umzuleiten. Ich hoffe, ich habe jemandem Zeit erspart

1voto

vanceter2310 Punkte 11

Ich hatte buchstäblich das gleiche Problem, aber es scheint, dass ich header("Location : page.php")statt header("Location: page.php"); schrieb. JA, dieses eine Leerzeichen macht einen Unterschied!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X