Tom: Cookie nur einmal setzen?

Beitrag lesen

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>