saschaas: Cookie nur einmal setzen?

Hallo,

ich habe folgendes Problem.

<?php setcookie('kmcz',$zufall = rand(1,100000), time()+60*60*24*30); ?>  
<?php  
$cookie = $_COOKIE["kmcz"];  
echo "wert: $cookie";  
?>

Der Cookie soll aber nur ein einziges mal gesetzt werden.
So dass der User immer die selbe Zahl angezeigt bekommt.
 evtl. noch eine Möglichkeit das sich die Zufallszahl nicht Wiederholt?

Danke im voraus! ;-)

  1. @@saschaas:

    nuqneH

    ich habe folgendes Problem.

    Welches?

    Qapla'

    --
    Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
    1. @@saschaas:

      nuqneH

      ich habe folgendes Problem.

      Welches?

      Qapla'

      JA, das ich das nicht hin bekomme. :-)

      1. @@saschaas:

        nuqneH

        JA, das ich das nicht hin bekomme. :-)

        Meine Frage war ernst gemeint. Was willst du mit dem Cookie eigentlich bezwecken?

        Qapla'

        PS: Zitiere bitte sinnvoll, nicht alles.

        --
        Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
        1. Hello,

          JA, das ich das nicht hin bekomme. :-)

          Meine Frage war ernst gemeint. Was willst du mit dem Cookie eigentlich bezwecken?

          ... vermutlich PHP üben?

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
  2. Hello,

    ich habe folgendes Problem.

    <?php
        setcookie('kmcz',$zufall = rand(1,100000), time()+606024*30); ?>
    <?php

    die folgende Abfrage ist erst beim nächsten Request des Clients sinnvoll

    var_dump($_COOKIE["kmcz"]);

    oder

    echo "Cookie: ", htmlspecialchars($_COOKIE['kmcz']);

    ?>

      
    Der (das?) Cookie muss erst mit der response zum Browser geschickt werden, damit dieser es beim nächsten Request dann wieder mit zum Server senden kann.  
      
      
    
    > Der Cookie soll aber nur ein einziges mal gesetzt werden.  
      
    Das ist einfach möglich, wenn Du damit meinst, dass der Client ein Cookie mit demselben Namen nicht noch einmal bekommen soll, wenn er schon eins (einen?) hat.  
      
    if (!isset($\_COOKIE['kmcz']))  
    {  
       $zufall = rand(1,100000), time()+60\*60\*24\*30);  
       setcookie('kmcz',$zufall); ?>  
    }  
      
    Und wenn du im Script keine Ordnung gehalten hast, dann kannst Du sogar noch abfragen, ob Du schon ein Cookie \_zum\_\_Senden\_ gesetzt hast.  
      
    <http://de3.php.net/manual/en/function.get-headers.php>  
      
    und für Dich hier zutreffend:  
    <http://de3.php.net/manual/en/function.apache-response-headers.php>  
      
      
    <?php    ### get\_additional\_headers.php ###  
      
        setcookie('paul','34567');  
      
        echo "<pre>\r\n";  
        echo htmlspecialchars(print\_r(apache\_response\_headers(),1));  
        echo "</pre>\r\n";  
      
    ?>  
      
      
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>
    
    1. Hello,

      kleine Korrektur:

      Und wenn du im Script keine Ordnung gehalten hast, dann kannst Du sogar noch abfragen, ob Du schon ein Cookie _zum__Senden_ gesetzt hast.

      http://de3.php.net/manual/en/function.get-headers.php

      und für Dich hier zutreffend:
      http://de3.php.net/manual/en/function.apache-response-headers.php

      nimm besser http://de3.php.net/manual/en/function.headers-list.php

      <?php    ### get_headers_to_send.php ###

      setcookie('adam','Mann');
      setcookie('eve','Frau');
      setcookie('snake','böse');

      echo "<pre>\r\n";
      echo htmlspecialchars(print_r(get_headers($url),1));
      echo htmlspecialchars(print_r(apache_response_headers(),1));
      echo htmlspecialchars(print_r(headers_list(),1));
      echo "</pre>\r\n";

      ?>

      Warum, siehst Du, wenn Du das kleine Testscript mal ausführst.

      Es bleibt Dir dann aber nicht erspart, die Werte des Arrays zu parsen.

      Halt besser Ordnung im Script :-)

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
    2. مرحبا

      die folgende Abfrage ist erst beim nächsten Request des Clients sinnvoll

      var_dump($_COOKIE["kmcz"]);
        # ...
        echo htmlspecialchars(print_r(apache_response_headers(),1));

      Nur aus Neugier, wie entscheidest du bei Kontrollausgaben, ob du var_dump() oder print_r() benutzt? Dir sind ja beide bekannt, warum benutzt du mal das eine, mal das andere?

      mfg

      --
      Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
      1. Tach!

        Nur aus Neugier, wie entscheidest du bei Kontrollausgaben, ob du var_dump() oder print_r() benutzt? Dir sind ja beide bekannt, warum benutzt du mal das eine, mal das andere?

        var_dump() ist genauer, weil es den Typ mit ausgibt. print_r() ist sowieso nur für Arrays und Objekte gedacht und etwas übersichtlicher, wenn man die Typ-Information nicht benötigt.

        dedlfix.

        1. مرحبا

          var_dump() ist genauer, weil es den Typ mit ausgibt. print_r() ist sowieso nur für Arrays und Objekte gedacht und etwas übersichtlicher, wenn man die Typ-Information nicht benötigt.

          Stimmt, an Typ hatte ich nicht gedacht, da bis jetzt nicht benötigt. Ich hoffe das ändert sich bald :)

          mfg

          --
          Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
          1. Tach!

            Stimmt, an Typ hatte ich nicht gedacht, da bis jetzt nicht benötigt. Ich hoffe das ändert sich bald :)

            Wenn du den Typ nicht siehst, kannst du NULL, false und Leerstring nicht voneinander unterscheiden. Alle drei ergeben beim echo keine Ausgabe. var_dump() erzeugt immer eine Ausgabe.

            dedlfix.

            1. مرحبا

              Wenn du den Typ nicht siehst, kannst du NULL, false und Leerstring nicht voneinander unterscheiden. Alle drei ergeben beim echo keine Ausgabe. var_dump() erzeugt immer eine Ausgabe.

              Vermutlich habe ich es in diesem zusammenhang sogar schon benutzt und kann mich jetzt nicht daran erinnern. Aber die Info ist auf jedenfall Hilfreich, Danke dafür.

              mfg

              --
              Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!