Cookie Überprüfung funktioniert nicht :/
Kris
- php
0 Fabian St.0 Kris
0 MudGuard
Hi
Dummer denkfehler ? :
<?php
error_reporting(E_ALL);
setcookie("soc_test", "testwert", time()+(300));
if(isset($_COOKIE['testcookie'])) {
header('Location: start.php');
exit();
} else {
header('Location: nocookies.htm');
exit();
}
?>
mfg
KRIS
Hi!
Dummer denkfehler ? :
<?php
error_reporting(E_ALL);setcookie("soc_test", "testwert", time()+(300));
if(isset($_COOKIE['testcookie'])) {
header('Location: start.php');
exit();} else {
header('Location: nocookies.htm');
exit();}
?>
Wo liegt nun dein Problem?
Grüße,
Fabian St.
Wo liegt nun dein Problem?
Cookie wird gesetzt ...
dennoch werde ich auf den unteren Link weitergeleitet :/
Hi!
Wo liegt nun dein Problem?
Cookie wird gesetzt ...
dennoch werde ich auf den unteren Link weitergeleitet :/
Das ist doch schon mal was ;-) Also hier noch mal dein Skript:
<?php
error_reporting(E_ALL);
// das Cookie heißt also 'soc_test'
setcookie("soc_test", "testwert", time()+(300));
// warum überprüfst du hier aber dann die Existenz des Cookies mit dem Namen 'testcookie'?
// richtig wäre also if(isset($_COOKIE['soc_test'])) { .... }
if(isset($_COOKIE['testcookie'])) {
// s.u.
header('Location: start.php');
exit();
} else {
// s.u.
header('Location: nocookies.htm');
exit();
}
?>
Darüber hinaus muss auf einen Location-Header eine absolute URI folgen, d.h. z.B. header(Location: 'http://'.$_SERVER['HTTP_HOST'].'/start.php');
.
Außerdem wird das ganze so nicht funktionieren, da ein Cookie erst im nächsten Request-Header wieder an den Server geschickt wird, sodass erst dann die Überprüfung TRUE ergibt, s.a. http://de.php.net/setcookie:
"Once the cookies have been set, they can be accessed on the __next page load__ with the $_COOKIE or $HTTP_COOKIE_VARS arrays."
Grüße,
Fabian St.
Hi,
setcookie("soc_test", "testwert", time()+(300));
if(isset($_COOKIE['testcookie'])) {
1. Du testest auf einen anderen Cookie als den, den Du setzt (soc_test <--> testcookie)
2. Der Cookie ist selbstverständlich erst beim nächsten HTTP-Request in $_COOKIE enthalten , denn erst dann ist er vom Client verschickt worden - unter der Voraussetzung, daß der Client den Cookie akzeptiert hat und er inzwischen nicht gelöscht wurde.
cu,
Andreas