dajeMedlem sedan aug. 20074 inlägg Jag har gjort en PHP-kod som kollar om en användares senaste aktion
är äldre än 900 sekunder och isåfall ändras dennes status till offline i databasen.
Problemet är att jag/eller användare måste öppna den filen för att koden ska köras.
Min fåga är alltså om man istället kan ha "koll/uppdaterings-filen" på servern,
och att den körs med låt säga en minuts intervall?
Koder ser ut så här:
<?
$opendb = mysql_connect("$dbhost", "$dbuser", "$dbpass") or die(mysql_error());
mysql_select_db("$databas") or die(mysql_error());
$now = time();
$clear = mysql_query("UPDATE login SET online = '0' WHERE ('".$now."' - action) >= 900 ")
or exit(mysql_error());
?>
Fältet 'action' i tabellen 'login' uppdateras varje gång användaren gör något.
Om denne inte loggar ut så timar ju sessionen ut förr eller senare, men databasen ändras aldrig.
PeddaMedlem sedan juni 20006 032 inlägg Kör du en windows server så kan du schemalägga körningen annars kan man skapa ett Cron jobb
dajeMedlem sedan aug. 20074 inlägg Det ligger på UNIX server hos Webhotellet (One.com)
i en MySql databas.
Så då återstår bara Cronjob eller?
Har hört talas om detta, är det krångligt att förklara
eller finns det kanske nån bra dokumentation hur man kommer igång med det?
TroxyMedlem sedan mars 20041 505 inlägg Frågan är, varför måste du ens uppdatera en status till offline? Det låter onödigt.
Om klockslaget i databasen är äldre än 900 sekunder så man ju offline, det går alltså redan att kolla.
Så när du presenterar en lista över aktiva medlemmar (eller var du gör) så behöver du bara mäta tiden.
Om jag utgår ifrån din kod ovan, så kan man exempelvis hämta alla som är online såhär:
SELECT ... FROM login WHERE (UNIX_TIMESTAMP() - action) <= 900
Hoppas du fattar :h
PeddaMedlem sedan juni 20006 032 inlägg Om du är intresserad av att veta mer om Cron jobs så finns det många guider på nätet.
http://www.webmasters-central.com/t/cron.shtml