Vad gör timer funktionen?
Skall det inte stå time() ist för timer()?
Halloj!
Nu har jag slitit med detta en hel dag utan att förstå vad jag gör fel.
Jag håller på att bygga en "automatisk urloggningsfunktion" Jag har därför byggt nedanstående lilla funktion för att kolla om användaren har passerat tiden den får vara inloggad. I korthet går funktionen till så här. (ursäkta röran med alla tmp variabler och print satser. de har använts för testning och felsökning).
1. $user_array innehåller bla info om hur lång tid användaren får vara inloggad innan han skall loggas ur. $timer är en timestamp som sätts av en annan funktion (så här: $timer = time(); ) och är global.
2. Om användaren besöker en sida anropas funktionen och om användaren är inom tidsintervallet så retuneras sant annars falskt.
så här ser funktionen ut:
function check_timer(){
global $timer, $user_array;
$ttl = $user_array["time_to_live"];
$tmp = $timer + $user_array["time_to_live"];
print "tmp=".$tmp."<br>";
print "time=".time()."<br>";
//Om tiden inte gått ut nollställs timern och sant retuneras
if(time() < $tmp){
$timer = time();
return true;
}
//om tiden har gått ut retuneras falskt
else{
return false;
}
return false;
}
Ovanstående fungerar inte. Men om jag gör så här:
function check_timer(){
global $timer, $user_array;
$ttl = $user_array["time_to_live"];
$tmp = $timer + $user_array["time_to_live"];
print "tmp=".$tmp."<br>";
print "time=".time()."<br>";
//Om tiden inte gått ut nollställs timern och sant retuneras
if(time() < $timer + 60){
$timer = time();
return true;
}
//om tiden har gått ut retuneras falskt
else{
return false;
}
return false;
}
så loggas användaren ut efter 60 sekunder....
Hur kommer detta sig?