hallo zusammen!
ich stehe da mal wieder vor einem problem das ich einfach beim besten willen nicht verstehe. das prinzip ist einfach. ich möchte einen cookie setzen und mir den gesetzen wert anzeigen lassen.
so weit funktioniert das super.
wenn ich jedoch zwischen dem setzen (erster code) und dem ausgeben (zweiter code) einen weiteren php script habe (mit include), wird beim anzeigen (zweiter code) eine 1 als wert angezeigt. wenn ich dieses include weglasse, wird der korrekte wert ausgegeben, also 100001215492771. das script welches ich mit inclujde dazwischen schreibe sieht so aus:
das muss man jetzt auch nicht alles verstehen was da steht.. aber ich verstehe nicht warum diese paar zeilen die ausgabe verändern!! es wird doch nirgendswo der cookie wert verändert. mein verdacht war, dass cookies nur ein einziges mal ausgelesen werden können, was aber im grunde ja auch quatsch ist..
hat jemand eine ahnung was da vor sich geht? danke schonmal
ich stehe da mal wieder vor einem problem das ich einfach beim besten willen nicht verstehe. das prinzip ist einfach. ich möchte einen cookie setzen und mir den gesetzen wert anzeigen lassen.
Code:
setcookie( 'xxx', '100001215492771', time()+3600);
Code:
echo 'cookie wert test : '.$_COOKIE['xxx'];
so weit funktioniert das super.
wenn ich jedoch zwischen dem setzen (erster code) und dem ausgeben (zweiter code) einen weiteren php script habe (mit include), wird beim anzeigen (zweiter code) eine 1 als wert angezeigt. wenn ich dieses include weglasse, wird der korrekte wert ausgegeben, also 100001215492771. das script welches ich mit inclujde dazwischen schreibe sieht so aus:
Code:
<?php
$timestamp = time();
$datetime = date("Y-m-d H:i:s",$timestamp) ;
if ($_COOKIE['xxx'] =! "") {
$cookie_request = mysql_query("SELECT * FROM `user` WHERE id = ".$_COOKIE['xxx']) or die("database request failed");
$cookie_row = mysql_fetch_array($cookie_request) ;
$time_difference = $timestamp - $cookie_row['last_login'];
// IP adresse ermitteln
if (! isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$client_ip = $_SERVER['REMOTE_ADDR'];
}
else {
$client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
if ($cookie_row['last_ip'] == $client_ip and $time_difference < 3600 and $time_difference > 0){
$login_status = true;
}
}
?>
das muss man jetzt auch nicht alles verstehen was da steht.. aber ich verstehe nicht warum diese paar zeilen die ausgabe verändern!! es wird doch nirgendswo der cookie wert verändert. mein verdacht war, dass cookies nur ein einziges mal ausgelesen werden können, was aber im grunde ja auch quatsch ist..
hat jemand eine ahnung was da vor sich geht? danke schonmal
Zuletzt bearbeitet: