Archiv verlassen und diese Seite im Standarddesign anzeigen : Sind Cookies aktiv?
andik2000 11-07-2003, 11:40 Hallo,
kann ich denn irgendwie mit PHP püfen, ob der Browser eines Benutzers Cookies akzeptiert oder nicht?
Grüße,
Andi
Damian1984 11-07-2003, 11:43 du kannst auf der nächsten Seite überprüfen, ob er auch gesetzte ist.
Falls nicht, dann liegst u 99% daran, dass der BEnutzer sie nicht aktzeptiert.
andik2000 11-07-2003, 11:48 Nun, ich möchte ja beim Aufruf einer Seite prüfen ob der Browser Cookies überhaupt annimmt, wenn nicht, dann soll was anderes gemacht werden.
Grüße, Andi
Damian1984 11-07-2003, 12:30 if(isset($_GET['reload']) && isset($_COOKIE['name']))
{
//mach was, wenn Cookie da ist
}
elseif(isset($_GET['reload']) && !isset($_COOKIE['name']))
{
//oder wenn er nicht da ist
}
else
{
set_cookie();
header("location:".$_SERVER['PHP_SELF']."?reload=1")
}
ist auch innerhalb einer Seite ;)
anderes wird es nicht gehen, soweit ich weiss
naja es sei denn java ist aktiviert dann dürfte es damit gehen, aber das ist ein anderes thema.
aber soweit ich weiß kann man nicht mit php auf die browser einstellungen zugriff und ich HOFFE das wird immer so sein!!
praetorian 11-07-2003, 12:44 Danke der gloreichen PHP Hilfe habe ich gesehen das PHP das ganze schon für uns erledigt
$HTTP_COOKIE;
Hier die Ausgabe:
CookieTest=Dieses_Cookie_ueberprueft_ob_Ihr_Browser_Cookies_annimmt; sprache=deutsch
oder hab ich das was falsch verstanden?
andik2000 11-07-2003, 12:48 Hmmmm,
des mit dem erneuten Laden der Seite möchte ich eigentlich vermeiden.
Hat jemand Erfahrung ob das Cookie schon beim Serverseitigen Interpretieren des PHP-Codes an den Browser geschickt wird oder erst beim Senden der kompletten Daten?
Ansonsten hätte ich mit folgendes überlegt:
<?
setcookie("mycookie", "test");
if ($mycookie){
// cookie ist aktiv
} else {
// kein cookie gesetzt
}
?>
andik2000 11-07-2003, 12:58 Original geschrieben von praetorian
$HTTP_COOKIE;
Hier die Ausgabe:
CookieTest=Dieses_Cookie_ueberprueft_ob_Ihr_Browser_Cookies_annimmt; sprache=deutsch
oder hab ich das was falsch verstanden?
Laut Online-Handbuch gebe ich mit $HTTP_COOKIE nur ein gesetztes Cookie aus. Wenn ich also ein Cookie mit setcookie("meincookie", "123") gesetzt habe, erhalte ich auf der Folgeseite mit "print $HTTP_COOKIE["meincookie"]" als Ausgabe 123.
Ist in der php.ini REGITER_GLOBALS auf "on" gestellt, kann ich mir $HTTP_COOKIE sparen und einfach "print $meincookie" benutzen.
Damian1984 11-07-2003, 13:05 @andik2000
http://de2.php.net/set_cookie
Häufige Probleme:
Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, in der das Cookie sichtbar sein soll. Um zu testen, ob ein Cookie erfolgreich gesetzt wurde, prüfen Sie noch vor der Ablaufzeit auf einer weiteren Seite ob das Cookie vorhanden ist. Die Ablaufzeit wird mittels dem Parameter expire gesetzt. Eine nette Möglichkeit um die Existenz von Cookies zu prüfen, ist print_r($_COOKIE); aufzurufen.
@preatorian:
Ich glaube schon.
Original geschrieben von andik2000
Hmmmm, des mit dem erneuten Laden der Seite möchte ich eigentlich vermeiden.
geht aber nicht.
bei der auslieferung der seite wird der response-header mitgesendet, der dem browser sagt das du ein cookie setzen möchtest.
beim der nächsten anforderung an den server sendet dann der browser das cookie im request-header wieder mit (sofern er's akzeptiert hat), und erst dann kannst du mit php darauf zugreifen.
andik2000 11-07-2003, 14:14 So hab ichs fast geahnt. Dann lasse ich mir was Anderes einfallen.
Dank & Grüße,
Andi
|
|