Hej!
Jag sitter och försöker lista ut hur det här med timestamp fungerar och det funkar inte riktigt i mitt huvud.
Mitt problem:
Jag ska uppdatera ett fält som ska användas för att räkna ut när användarens session har gått ut. Man ska bli utloggad automatiskt efter 60 minuter och jag antar att det är timestamp som man bör använda.
Hur skulle detta se ut?
Jag har ett fält som heter "sessiontime" i MySql db'n där jag hade tänkt att detta skulle ligga.
Alpha IIMedlem sedan maj 20002 993 inlägg Kommer inte riktigt ihåg php (var ett tag sen jag använde det).
Men timestamp är ju tiden i sekunder sen ett visst datum. 1970 eller nått :)
$nu = time();
$igår = time() - 60 * 60 * 24; // sekunder * minuter * timmar
$for_en_timme_sedan = time() - 60 * 60;
if $timestamp < $for_en_timme_sedan
{
// bla bla bla
}
Ok... men hur uppdaterar man en timestamp? Behöver man fylla en variabel eller uppdateras timestamp automatiskt?
Gärna lite kod så jag kan se hur ni menar... funkar bäst så ;)
Alpha IIMedlem sedan maj 20002 993 inlägg Men om du tilldelar en variabel time();
$justnu = time();
tilldelas $justnu timestampet just när koden körs. vill du ändra $justnu skriver du ju samma sak igen eller vad du nu vill att den ska innehålla :)
Förstog inte riktigt vad du menade ;)
ok... det var bara jag som var trög :)
Tackar så mycket
$session = time();
$sql = "UPDATE users SET online=1,last_logged_in='$logindatetime',sessiontime='$session' WHERE username='$username' AND password='$password'";
Fältet "sessiontime" i min db får värdet "00000000000000" medans alla andra rader med timestamp har tiden då ovanstående kod kördes?! Jag vill att de andra fälten inte ska uppdateras automatiskt (vilket de gör), endast den användare som kör scriptet ska uppdateras... några idéer? Ska jag ha några speciella värden på timestamp i db'n?
Hilfe!!
MatteMedlem sedan aug. 20002 975 inlägg timestamp i mySql är inte samma sak som timestamp i PHP. Du får göra så här:
$session = date("YmdHis");
eller ännu hellre sätt det direkt med mysql:
UPDATE users SET sessiontime=now()
Håller du på att göra en egen sessionshantering, för annars finns livslängden på en inaktiv session i php.ini. Standardvärdet är:
session.gc_maxlifetime = 1440
Alltså efter 24 minuters inaktivitet så dör sessionen.
Jo... jag håller på med en sessionshantering... så du menar att jag inte behöver kolla att man har varit aktiv? Gör php det automatisk?
MatteMedlem sedan aug. 20002 975 inlägg
Webslave skrev:
så du menar att jag inte behöver kolla att man har varit aktiv? Gör php det automatisk?
Använder du PHP's sessionshantering så är det så. Standardinställningen är 24 minuters inaktivitet innan automatisk sessionsavslutning, men kolla i php.ini eller phpinfo() så får du reda på vilken tid som gäller på din server.