Warning: Cannot modify header information - headers already
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
auftritt
ausgabe
code
erfolgreichen login
fehler
file
funktionieren
header
http
index
login
output
sagen
server
trick
url
warnung
weiterleiten
weiterleitung
zeile
-
Kann mir einer sagen was hier falsch ist?
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/infinitywar/html/****/index.php:42) in /home/webpages/lima-city/infinitywar/html/****/****/login.php on line 22
Mein Login sollte nach erfolgreichen Login auf eine Seite weiterleiten
header('Location: file.php');
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dann ist vorher schonmal irgendwo ein "echo" geschehen. Es wurde irgendwie ein Zeichen zum Client gesendet.
Headermanipulationen gehen nur, bevor ein Teil des Contents gesendet wurde, da Header VOR dem Content gesendet werden müssen.
Alternativ kannst du auch OutputBuffering benutzen, dann wird nichts gesendet, bis du es wirklich zulässt, könnte bei dir aber auch eine Debugausgabe vorher sein? Irgendwo ein echo vorher für eine Wertanzeige?
Liebe Grüße -
infinitywar schrieb:
yo mey! wenn du jetzt die ganze warnung ansiehst, hast dort auch eine zeile 22 in 'login.php' ;) was ist dort eigentlich??
Kann mir einer sagen was hier falsch ist?Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/infinitywar/html/****/index.php:42) in /home/webpages/lima-city/infinitywar/html/****/****/login.php on line 22
Mein Login sollte nach erfolgreichen Login auf eine Seite weiterleiten
header('Location: file.php');
dann:header('Location: file.php');
ist abgrundtief falsch (was ja mit dem fehler nichts zu tun hat). nach 'Location: ' muss immer ein URL stehen! also:header('Location: http://<path>/<to>/file.php');
(und frage mich nicht warum. es ist einfach so ;)
generell zu deinem fehler:
solltest in der lage sein, deine php-files logisch genug aufzubauen, brauchst du kein einziges mal echo, (f)print o. sonst irgend etwas an ausgabe. dann kannst überall - nach bedarf - header wegschicken, ohne dass nur ein fehler/warnung auftritt.
infinitywar schrieb:
also klar, du hüpfst zwischen html- und php-code. und genau das ist mit 'logisch' gemeint. wenn du mal html code gehabt hast und zu php wechselst, ist schon eine ausgabe passiert. (das ist schlechthin 'spaghetticode'.)
Also ich habe jetzt mal in der index.php Zeile 42 geguckt und dort steht nur dass: <?PHP
du sollst so denken: 'ich generiere html mit php-code' und nicht: 'ich gebe mal html aus und dann programmiere ich ein bisschen php noch dazu'!
Beitrag zuletzt geändert: 2.3.2013 10:33:38 von czibere -
Ah okay, aber was ich mir nicht erklären kann, auf einem anderen Server kamen die Errors nicht, aber warum hier?
-
Das kann beispielsweise daran liegen, dass du auf dem anderen Server die Fehleranzeige deaktiviert hast, und bei uns via .htaccess aktiviert hast.
Sobald dann eine Fehlermeldung ausgegeben wird, kann die Header-Weiterleitung nicht mehr funktionieren. -
Also wenn ich die Fehleranzeige deaktivieren würde, würde der header Code funktionieren?
-
infinitywar schrieb:
Also wenn ich die Fehleranzeige deaktivieren würde, würde der header Code funktionieren?
Wie sollen wir das denn mit Sicherheit sagen können?
Teste es doch einfach!
Ansonsten wirst Du wohl die Ausgabe von php_info() der beiden Server vergleichen müssen, um zu sehen, wo der Fehler liegt. -
Vor einem Header oder einer Session darf keine Ausgabe erfolgen. Das ist der Trick ;)
-
Guck mal hier http://www.php.de/wiki-php/index.php/Headers_already_sent
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage