setcookie = header fehler?

lordfritte

Erfahrenes Mitglied
Hallo ich habe ein kleines Problem, wenn ich Cookies setzen möchte:
PHP:
setcookie("konto_user", $_POST['username'], time()+3600*3600); //Zeile 37
setcookie("konto_pass", md5($_POST['password']), time()+3600*3600); //Zeile 38

kommt dies raus:
Code:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\konto.php:14) in C:\xampp\htdocs\konto.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\konto.php:14) in C:\xampp\htdocs\konto.php on line 38
 
Die Fehlermeldung besagt, dass die Ausgabe bereits durch eine Anweisung in Zeile 14 der besagten Skript-Datei erfolgte und daher der HTTP-Header nicht mehr geändert werden kann, was für das Setzen eines Cookies notwendig ist, da diese in ebendiesem HTTP-Header übermittelt wird.
Abhilfe: puffere sämtliche Ausgaben mithilfe der Funktionen der Ausgabesteuerung.
 
Was heißt dort wäre nichts? Auch eine Leerzeile wie etwa im Folgenden verdeutlicht erzeugt eine Ausgabe:
PHP:
<?php

	// …

?>

<?php

	// Ausgabe eines Zeilenumbruchs
	// …

?>
 
Die Meldung besagt ganz klar das es bis Zeile 37 schon einen Output gegeben hat.....irgendwo gibst Du da shcon was aus. Pack die Cookies mal ganz nach oben. Dann klappts auch mitm Nachbarn ;)

PHP:
<?php
setcookie("konto_user", $_POST['username'], time()+3600*3600); 
setcookie("konto_pass", md5($_POST['password']), time()+3600*3600); 
?>

Dann klappts auch mit dem Nachbarn.
 
setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace.

Weil das HTTP Protokoll es so will.
 
Zurück