Kalle_Worms: prüfen, ob Cookie akzeptiert wurde

Hallöle,

werde nicht so ganz schlau aus
http://de2.php.net/manual/de/function.setcookie.php

Offenbar kann PHP nicht feststellen, ob ein Cookie vom Client akzeptiert wurde?

Im Netscape lasse ich Cookies nur mit manueller Genehmigung durch. Wenn ich ablehne, kommt dennoch die Erfolgsmeldung:
Cookie "besucher_plz" wurde gesetzt

$cookie_ende = time() +31 *24 *60 *60;  // 31 Tage
  if ( setcookie("besucher_plz", $besucher_plz, $cookie_ende )) {
    echo "<p>Cookie "besucher_plz" wurde gesetzt</p>";
  }

Das Cookie wurde aber korrekterweise NICHT gesetzt.

Mit den Zeilen
  setcookie("besucher_plz", $besucher_plz, $cookie_ende );
  if ( $_COOKIE['besucher_plz'] ) echo "<p>Cookie "besucher_plz" ist tatsächlich da.</p>";
  else echo "<p>Cookie "besucher_plz" ist nicht da.</p>";

Bekomme ich die Verneinung, auch wenn ich das Cookie (das erste Mal) zulasse.

Was läuft da falsch?

LG, Kalle

  1. Hi,

    Offenbar kann PHP nicht feststellen, ob ein Cookie vom Client akzeptiert wurde?

    selbstverständlich kann es das. Wenn es akzeptiert wurde, schickt der Client es beim nächsten Request mit.

    Im Netscape lasse ich Cookies nur mit manueller Genehmigung durch. Wenn ich ablehne, kommt dennoch die Erfolgsmeldung:
    Cookie "besucher_plz" wurde gesetzt
      $cookie_ende = time() +31 *24 *60 *60;  // 31 Tage
      if ( setcookie("besucher_plz", $besucher_plz, $cookie_ende )) {
        echo "<p>Cookie "besucher_plz" wurde gesetzt</p>";
      }

    Die Meldung ist irreführend. Richtig wäre: 'Die Bitte um das Setzen des Cookies "besucher_plz" wurde dem Header hinzugefügt und wird verschickt werden.'

    Was läuft da falsch?

    Dein Verständnis der Client-Server-Architektur.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi, Cheatah

      Was läuft da falsch?

      Dein Verständnis der Client-Server-Architektur.

      Ein klares Wort zur rechten Zeit schafft Einsicht und auch Heiterkeit.

      Naja, aus Verständnismangel, manchmal gesteigert bis zur Verzwei- oder -dreiflung, recherchiere ich ja im Web.

      Kalle.

      1. Huhu Kalle

        Naja, aus Verständnismangel, manchmal gesteigert bis zur Verzwei- oder -dreiflung, recherchiere ich ja im Web.

        Das mit den Keksen funktioniert ungefähr so:

        Kalle (K) geht zum Bäcker (B).

        K: "Guten Tag ich möchte ein Gersterbrot."

        B: "Ok hier hast Du Dein Brot."
        B: (spricht zu sich selbst)
         Hehe, da stecke ich dem Kalle noch einen Keks mit in die Tüte.

        Jetzt nachdem Kalle die Tüte in Empfang genommen hat geht es wie folgt weiter ...

        a)
         Kalle kontrolliert die Tüte und da er keine Kekse mag wirft er ihn vor dem Bäckerladen in den Rinnstein.

        oder

        b) Kalle freut sich über den Keks und isst ihn gleich auf.
           Davon bekommt er gelbe, schrecklich juckende, Pusteln.

        Ein neuer Tag beginnt.

        Kalle geht wieder zum Bäcker.

        K: "Guten Tag ich möchte einen Hefekranz und zwei Berliner"

        B: "Ok hier hast Du den Hefekranz und zwei Berliner"

        je nachdem was zuvor geschah (a) oder (b)

        a.1)

        B: (spricht zu sich selbst)
         Hehe, da stecke ich dem Kalle noch einen Keks mit in die Tüte.

        b.1)
        B: (spricht zu sich selbst)
         Oh, der Kalle hat ja lauter gelbe Pusteln, also hat er schon einen Keks von
         mir bekommen.

        ....

        ---
        Kalle = Client
        Bäcker = Server

        Also wenn der Bäcker den Keks in die Tüte steckt weis er noch nicht was
        Kalle damit anfangen wird.

        Und hier sind die Krücken da ja jeder Vergleich hinkt ;-)

        YY

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
        1. Hallo,

          Das mit den Keksen funktioniert ungefähr so: [...]

          nice one ;)

          Viele Grüße
          Patrick

          --
          "Though this be madness, yet there's method in't."
          sh:( fo:| ch:? rl:( br:^ n4:( ie:{ mo:) va:} de:> zu:) fl:| js:( ss:| ls:[
          1. Danke, lulu,

            Das mit den Keksen funktioniert ungefähr so: [...]

            jetzt habe sogar ich einen Schimmer, wie das mit den Keksen funktioniert.

            Kalle

  2. Hello,

    Und auf lulus nette Anekdote noch einen kleinen Tipp aus der Praxis von mir:

    Request vom Client kommt
      Setze den Cookie
      Setze eine Umleitung auf $_SERVER['PHP_SELF'].'?flag=blah' wenn (!isset($_GET['flag']))

    Wenn blah dann in flag wieder ankommt und der Cookie drin ist, nimmt der Client Cookies an.
    Wenn blah dann in flag wieder ankommt und der Cookie ist nicht dabei, nimmt der Client keine an

    Alles coOKie?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hi,

      Request vom Client kommt
        Setze den Cookie
        Setze eine Umleitung auf $_SERVER['PHP_SELF'].'?flag=blah' wenn (!isset($_GET['flag']))
      Wenn blah dann in flag wieder ankommt und der Cookie drin ist, nimmt der Client Cookies an.
      Wenn blah dann in flag wieder ankommt und der Cookie ist nicht dabei, nimmt der Client keine an

      Nicht ganz.
      Dann hat der Client genau diesen einen Cookie nicht angenommen.
      Daraus können aber keinerlei Rückschlüsse über irgendwelche anderen Cookies (oder denselben Cookie zu einem anderen Zeitpunkt) gezogen werden.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. Hello,

        Nicht ganz.
        Dann hat der Client genau diesen einen Cookie nicht angenommen.
        Daraus können aber keinerlei Rückschlüsse über irgendwelche anderen Cookies (oder denselben Cookie zu einem anderen Zeitpunkt) gezogen werden.

        Nee, ja klar. Daraus kann man genausowenig Rückschlüsse ziehen, wie dass derselbe Client sich überhaupt nochmals meldet ...

        ... oder, dass das Forum morgen noch besteht!

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau