Hello,
- 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>";
?>
- 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