PHP Setcookie - nicht auf Webserver?!

RobertGree

Cadet 3rd Year
Registriert
Feb. 2007
Beiträge
40
Hey hey!

Wieso funktioniert das auf meinem localhost (EasyPHP), nicht aber auf einem richtigen Webserver?

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
$var = 'huhu, testtext!!';
setcookie('guck4', $var, time()+3600, "/");
$name = $_COOKIE['guck4'];
echo $name;
?>

Das als PHP-Datei abgespeichert und local aufgerufen funktioniert ohne Probleme, das Cookie wird gesetzt. Selbige Datei aber auf einem Webserver zeigt mir das:

Code:
Warning: Cannot modify header information - headers already sent by (output started at /srv/www/vhosts/kostenlos-php.de/subdomains/testspace/httpdocs/test.php:2) in /srv/www/vhosts/kostenlos-php.de/subdomains/testspace/httpdocs/test.php on line 5

.. und setzt keinen Cookie.
Weis jemand warum oder was ich ändern muss?
Der Server ist für mich gerade übrigens nur zum Testen da.

Vielen Dank,
Grüße!
 
Mach den Doctype hinter das PHP. Sobald du Content ausgibst werden (wohl je nach Server) die Header gesendet.
 
Zuletzt bearbeitet: (-e)
du musst das Cookie vor jeder Ausgabe setzten, also Header verschicken.
Auch wenn du davor nix ge-print-et hast. Alles was 'sichtbar' im Quelltext ist gehört nach dem Header.

PHP:
<?php
$var = 'huhu, testtext!!';
setcookie('guck4', $var, time()+3600, "/");
$name = $_COOKIE['guck4'];
echo $name;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

so klappts, garantiert.

EDIT: hmm da war wohl einer schneller wie ich^^
 
Vielen Dank, hat geholfen!
 
Zurück
Oben