PHP Meine Cookies wollen einfach nicht

pp3345

Lieutenant
🎅Rätsel-Elite ’24
Registriert
Feb. 2008
Beiträge
637
Vor ein paar Tagen hab ich mir in der Bibliothek ein Buch zu PHP 5.1 ausgeliehen, mit CD. Ich habe jetzt aber Probleme mit den Cookies, immer wenn ich eins erstellen will, bringt PHP die folgende Ausgabe:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\login.php:1) in C:\xampp\htdocs\login.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\login.php:1) in C:\xampp\htdocs\login.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\login.php:1) in C:\xampp\htdocs\login.php on line 6

Cookies wurden gesetzt!

Folgender Code:

PHP:
<?php
  setcookie("Programmiersprache", "PHP", 
    time() + 60*60*12, "/");
  setcookie("Sprachversion", "5", 
    mktime(0, 0, 0, 12, 24, 2007), "/");
  setcookie("Session", "abc123", null, "/");
?>
<html>
<head>
  <title>Cookies</title>
</head>
<body>
<p>Cookies wurden gesetzt!</p>
</body>
</html>

Das ist exakt der selbe Code wie auf der Buch-CD. Nur wenn ich die Datei von der Buch-CD auf den Webserver kopiere, läuft sie. Da mein eigener Code nicht funktioniern wollte, habe ich einfach den von der Buch-CD in meine eigene Datei kopiert(siehe oben) und nun funktioniert er trotzdem nicht. Ich habe es auch bereits auf zwei verschiedenen PCs probiert. Zudem habe ich es auch schon sowohl mit PHP 5 als auch mit PHP 4 probiert. Ich weiß absolut keinen Rat mehr, da der Code in beiden Dateien ja unterdessen exakt der selbe ist, nur funktioniert die eine und die andere nicht.
 
Ich habe zurzeit genau das selbe Problem :)
Allerdings habe ich es mal auf meinen Server geladen und da hat es funktioniert.
Ich glaube das liegt an Xampp...
 
Wenn du die Datei mit dem Zeichensatz UTF-8 Abspeciherst setzt er vor dem ersten Zeichen ein paar steuerzeichen zur erkennung der UTF-8 Kodierung. Dieser wird als erstes zum server gesendet und dadurch gibts probleme mit der Session. Versuch mal die datei mit der Kodierung UTF-8 OHNE BOM abzuspeichern. Das fällt mir grad so spontan ein
 
oder nimm ISO-8859-1 bzw. ANSI

Wichtig ist wie gesagt, es darf an keiner Stelle VOR dem Funktionsaufruf irgendetwas ausgegeben worden sein, weder von php noch html-code, auch keine Zeilenumbrüche vor dem <? !
 
Zuletzt bearbeitet:
ISO is out of date.. ich würd schon bei UTF-8 bleiben langsam sollte man mit der Zeit gehen xD
 
Das Problem bei UTF8 Dateien ist, dass manche Editoren zu Beginn noch das BOM einfügen. Erstelle die UTF8 Datei doch mal mit einem anderen Editor (z.B. Notepad++).

Außerdem solltest du dann, um Darstellungsprobleme bei Umlauten zu vermeiden (und sich nicht html-kodieren zu müssen), folgende Zeile einfügen:
header("Content-Type: text/html; charset=utf-8");
 
Zurück
Oben