Cookie Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Cookie Problem

    Hi,

    Ich möchte einen Cookie verwenden der eine Sprachvariable speichern soll. Soweit so gut, aber wenn ich 2mal den Browser schließe ist beim 3ten mal öffnen der Wert nicht mehr da.
    PHP-Code:
    <?php 
    session_start
    ();
    setcookie ("CSNTrafficcounter"$langtime()+(31536000) );
    if (!isset(
    $lang)) $lang=$_COOKIE["CSNTrafficcounter"];
    ?>
    Was mache ich falsch?

    Danke
    Sayon

  • #2
    Ich würde sagen, dass Du zuerst die Existenz des Cookies überprüfst und dann $lang ermittelst.
    Wo kommt denn $lang bei Deinem obigen Beispiel her?
    Du setzt ja $lang in Zeile 3 bereits in Deinen Cookie, ohne diesen Wert vorher überprüft zu haben. Wenn der beim zweiten Aufruf nicht richtig ermittelt werden konnte, dann wird er als "" im Cookie abgelegt und folglich ist beim dritten Aufruf der Wert futsch.
    Zuletzt geändert von DSB; 04.10.2003, 21:30.

    Kommentar


    • #3
      Re: Cookie Problem

      Original geschrieben von Sayon
      PHP-Code:
      setcookie ("CSNTrafficcounter"$langtime()+(31536000) );
      if (!isset(
      $lang)) $lang=$_COOKIE["CSNTrafficcounter"]; 
      das kann ja so auch nicht funktionieren.

      set_cookie() bewirkt, dass im response header des servers die cookie-daten mitgesendet werden.

      der browser sendet die cookie-daten dann bei seinem nächsten request wieder mit - d.h., auf den cookie kannst du erst dann zugreifen, wenn der browser erneut eine seite angefordert hat, aber nicht schon in der selben instanz deines scriptes.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Original geschrieben von DSB
        Wo kommt denn $lang bei Deinem obigen Beispiel her?
        $lang wird später noch ermittelt. Wenn kein Cookie da ist, dann wird $lang auf "de" gesetzt. Klickt aber der Besucher auf "en" wird die Seite neu geladen und eigentlich ein Cookie mit "en" gespeichert.

        Original geschrieben von DSB
        Du setzt ja $lang in Zeile 3 bereits in Deinen Cookie, ohne diesen Wert vorher überprüft zu haben. Wenn der beim zweiten Aufruf nicht richtig ermittelt werden konnte, dann wird er als "" im Cookie abgelegt und folglich ist beim dritten Aufruf der Wert futsch.
        Kann ich denn auch später einen Cookie setzten? Ich dachte es darf vorher keine Ausgabe erfolgen?

        Original geschrieben von wahsaga
        der browser sendet die cookie-daten dann bei seinem nächsten request wieder mit - d.h., auf den cookie kannst du erst dann zugreifen, wenn der browser erneut eine seite angefordert hat, aber nicht schon in der selben instanz deines scriptes.
        Geschieht ja auch in dem Moment wo die Sprache gewechselt wird.

        Wenn ich das jetzt wieder falsch verstanden habe bin ich für weitere Hilfe dankbar.

        Gruss
        Sayon

        Kommentar


        • #5
          Original geschrieben von Sayon
          Geschieht ja auch in dem Moment wo die Sprache gewechselt wird.
          dann mache es auch, wenn der user kein cookie sendet.

          also sprache ermitteln aus cookie ODER kein cookie, dann default-language ins cookie schreiben und header() zum neuladen.

          fertig.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Ok, danke. Mir ist in diesen Sekunden auch ein Licht aufgegangen.

            Der User kommt zum ersten mal auf die Seite. Merkt deutsch ist nicht richtig und schaltet auf englisch. Kommt er später wieder ist es noch englisch. Würde er keinen Link betätigen ist es beim nächsten mal wieder deutsch, tut er es doch (was wahrscheinlicher ist) wird der Cookie wieder korrekt gespeichert.

            Werde die anderen Tips aber trotzdem noch beherzigen.

            Danke nochmal.
            Sayon

            Kommentar


            • #7
              Original geschrieben von Sayon
              Kann ich denn auch später einen Cookie setzten? Ich dachte es darf vorher keine Ausgabe erfolgen?
              Richtig, aber deshalb kannst Du ja trotzdem den Wert einer Variablen abfragen. Solange keine Ausgabe an den Browser erfolgt, kannst Du ruhig alles andere machen.

              Kommentar

              Lädt...
              X