tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
397
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PatMor Tutorials.de Gastzugang
    Ich möchte gern PHP erlernen und in meinem ersten Projekt arbeite ich mit 3 Sprachen. Soll heißen, dass jeder Nutzer die gewählte Sprache in einen Cookie geschrieben bekommt und beim nächsten besuch gleich die Richtige Sprache verwendet wird. Nun versuchte ich es mit diesem Script:

    <?php
    error_reporting(E_ALL);
    setcookie("xyz", "test");
    echo "Es wurden ".count($_COOKIE)." Cookie(s) übergeben";
    ?>

    Das mir, soweit habe ich es verstanden, den Cookie xyz erstellt und "test" hineinschreibt und weiterhin wird mir angezeigt wieviele Cookies übergeben wurden (alle auch von anderen Seiten?). Jedenfalls bekomm ich immer folgende Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at Z:\xampp\htdocs\---\html\index.php:4) in Z:\xampp\htdocs\---\html\index.php on line 19
    Es wurden 0 Cookie(s) übergeben

    line19: setcookie("xyz", "test");

    Könntz mir da helfen?

    Thx..
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    HTTP-Cookies werden über den HTTP-Header abgewickelt. Dieser wird vor der eigentlichen Nutzlast der Anfrage- und Antwortnachricht gesendet. Gab es nun bereits eine Ausgabe, kann der Apache-Webserver den Header nicht mehr verändern, da er bereits gesendet wurde. Du musst den Cookie also vor jeglicher Ausgabe setzen.
     
    Markus Wulftange

  3. #3
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Weiterhin ist der Cookie nicht direkt nach dem Setzen ansprechbar sondern erst nach einem Reload. Deine Ueberpruefung wie viele Cookies gesetzt wurden ist also direkt nach setcookie() vollkommen fehl am Platz und wird Dir hoechstens die Anzahl bereits zuvor gesetzter Cookies anzeigen, aber eben den neu gesetzten nicht eingerechnet.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  4. #4
    PatMor Tutorials.de Gastzugang
    Also muss ich das "setcookie" an den anfang des scriptes setzen!? Also ich arbeite mit iframes und setz das in den Banner (Sprachen-Auswahl) noch vor den html-Tag und muss dann etwas einbauen das die Seite nach dem setzen des veränderten Cookies (wenn also die Sprache geändert wird) neu geladen wird weil der Cookie erst dann ausgelesen werden kann!? Hab ich das jetz richtig verstanden?

    Verzeiht mir, aber das sind wirklich erste Schritte in PHP..

    Die Ausgabe brauch ich ja eigentlich nicht, ich wollte halt nur den Fehler finden und dachte das würde helfen.
     

  5. #5
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Wenn der Cookie in einem iFrame gesetzt wird sollte das okay sein, denn iFrames sind ja seperate Dateien und werden somit gesondert angefordert. Jedoch musst Du, wie Gumbo schon sagte, darauf achten, dass in diesem iFrame nichts ausgegeben wird bevor Du setcookie() aufrufst.
    Wenn Du setcookie() in der Hauptseite aufrufst koennte es uebrigens sein, dass der Cookie im iFrame bereits ohne Reload zur Verfuegung steht. Das ist jetzt aber nur Spekulation.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

Ähnliche Themen

  1. [JS] Cookie setzen
    Von fla5hi im Forum Javascript & Ajax
    Antworten: 9
    Letzter Beitrag: 25.05.10, 17:01
  2. Antworten: 3
    Letzter Beitrag: 01.08.09, 15:34
  3. COOKIE setzen
    Von Paspirgilis im Forum PHP
    Antworten: 2
    Letzter Beitrag: 07.08.08, 15:22
  4. Antworten: 2
    Letzter Beitrag: 05.04.07, 14:08
  5. Cookie setzen nicht
    Von NightWatcher im Forum PHP
    Antworten: 18
    Letzter Beitrag: 25.02.04, 18:48