Funderar på att göra ett litet annorlunda inloggningssystem. Det går ut på att man har tre kolumner i databasen anv, lös, och loginstatus.
När man sedan loggar in så ändras 0 till 1 i loginstatus
När man sedan går till en annan sida så kontrolleras det i db att logstatus = 1
Är det någon som har gjort ett sånt här system innan? (det borde det ju vara)
Finns det några nackdelar?
Det skulle väl fungera, men du måste ha ett fält till med "senast aktiv" - så om inget händer på t.ex. 10 minuter så ändras loginstatus till 0 igen. Annars kommer användaren att vara ständigt inloggad när han/hon har loggat in en gång.
på www.fjompa.com har jag löst det lilla problem med javascriptet onUnload
också öppnas ett litet fönster som ändrar variabeln och sedan stängs,
prova det,
I loginstatus-fältet kommer tiden (timestamp) då användaren sist var aktiv lagras.
<?
/* Antal minuter en användare är aktiv */
$antal_aktiva_minuter="10";
$db = mysql_connect ("localhost", "användare", "lösen");
mysql_select_db("databasnamn",$db) or die( "Kunde inte ansluta till databasen");
$tid=time();
$antal_aktiva_sekunder=$antal_aktiva_minuter*60;
$anvc= $HTTP_COOKIE_VARS["AnvCookie"];
$losc= $HTTP_COOKIE_VARS["LosCookie"];
$hittat = mysql_num_rows(mysql_query("select * from medlemmar where los = '$losc' AND anv = '$anvc'"));
if ($hittat=="1") {
$rad = mysql_fetch_array(mysql_query("select * from medlemmar where los = '$losc' AND anv = '$anv'"));
$nuvandare=$tid-$antal_aktiva_sekunder;
mysql_query("UPDATE medlemmar SET loginstatus='$tid' where los = '$losc' AND anv = '$anvc'");
setcookie ("AnvCookie", $anvc,time()+$antal_aktiva_sekunder);
setcookie ("LosCookie", $losc,time()+$antal_aktiva_sekunder);
}
else {
echo "Du måste logga in.";
exit;
}
?>
Inloggad
<?
mysql_close($db);
?>
på www.fjompa.com har jag löst det lilla problem med javascriptet onUnload
också öppnas ett litet fönster som ändrar variabeln och sedan stängs,
prova det,
Om man har stängt av javascript då?
Jag har gjort såhär
När någon loggar in så läggs följande in i en egen tabell
medlems_id
timestamp när man loggar in.
online flagga
(jag har även lite rolig statistik info här som webläsare, OS, IP m.m.)
Så fort någon laddar sidan och är inloggad (du eller jag) så uppdaterar den timestampen. Dessutom så kollar den efter alla online flaggor där timestamp är längre än den tid man satt att man får "idle" (inte göra nånting) och sätter av dom. I mitt fall är det 15min.