Tom: prüfen ob cookie gesetzt wurde/existiert

Beitrag lesen

Hello,

  1. wie kann ich prüfen, ob ein bestimmter cookie bereits gesetzt wurde?

ich wollte es mit isset($_COOKIE['cookiename']) prüfen,
bin mir aber nicht sicher ob das wirklich alles abfängt?

Damit kann man prüfen, ob ein bestimmter Cookie bereits "gesetzt", gesendet und per nächstem Request des Clients wieder beim Server angekommen ist.

Wenn Du wissen willst, ob Dein Script den Cookie bereits in die Headerlist zum Senden an den Client eingetragen hat, schau Dir mal dieses Testscript an:

<?php  ### headerlist.php ### Autor:Thomas Schmieder ###

setcookie() will add a response header on its own

setcookie('foo', 'bar');

Define a custom response header

This will be ignored by most clients

header("X-Sample-Test: foo");        ## uncomment to test it

Specify plain text content in our response

header('Content-type: text/plain');  ## uncomment to test it

What headers are going to be sent?

echo "<pre>";

if(function_exists("headers_list"))
{
  print_r(headers_list());
}
elseif(function_exists("apache_response_headers"))
{
  print_r(apache_response_headers());
}
else
{
  echo "\nkeine Header-Listing-Funktion verfügbar\n";
}
echo "</pre>";

?>

  1. wie kann ich prüfen, ob ein besucher cookies akzeptiert?

ich dache, ich setze einfach einen cookie mit setcookie und fange den rückgabewert ab - entweder er konnte gesetzt werden oder nicht -> hinweis an den besucher, das er seine cookies deaktiviert hat.
oder gibt es noch andere möglichkeiten, das zu tun?

Das ist im Prinzip richtig. Du musst den Client nur dazu bewegen, "von alleine" zu antworten. Das kannst Du versuchen mit einem Location-Header:

<?php  ### cookie_enabled.php ###

## Cookie setzen:
  setcookie('CookiesEnabled', 'Yes');

## und den Client um Antwort bitten
  header("Location: http://www.example.com/cookie_resent.php"]);
  exit;

...

?>

<?php ### cookie_resent.php ###

echo "<pre>";
  print_r($_COOKIE);
  echo "</pre>";

?>

Der Einfachheit habe ich zwei Scripte daraus gemacht, da bei einem selbstrefenzierenden Script sonst eine unendliche Schleife entstehen würde, wenn der Client keine Cookies zurücksendet.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen