1x inloggen
Hoe kan ik er nou voor zorgen dat wanneer ik het vinkje niet aanvink, toch ingelogd blijf totdat ik de site afsluit?
Script:
if($_POST['blijven'] == "1") {
$lengte = 60*60*24*365;
}
setcookie("gebruikersnaam", "$list->gebruikersnaam", time() + $lengte, "/");
setcookie("loggedid", "$list->id", time() + 365 * $lengte, "/");
setcookie("hash", "$list->wachtwoord", time() + $lengte, "/");
echo "Je bent succesvol ingelogt, een moment geduld..<META HTTP-EQUIV='refresh' CONTENT='1; URL=index.php?pag=inloggen/home'>";
}
}
else {
?>
<form action="" method="POST" style="position: absolute; float: left; top: 10; left: 10">
Gebruikersnaam: <input type="text" name="nick">
<br>
Wachtwoord: <input type="password" name="pass">
<br>
Ingelogd blijven: <input type="checkbox" name="blijven" value="1">
<input type="submit" name="login" value="Inloggen">
$lengte heeft geen waarde als de checkbox niet aangevinkt is, dus de cookie zal ook niet op een juiste manier geset worden.
Met zoiets?
Zo dacth ik:
ob_start();
If(IsSet($_COOKIE['gebruikersnaam']))
{
$lid = @mysql_query("SELECT * FROM members WHERE wachtwoord='".$_COOKIE['hash']."' AND gebruikersnaam='".$_COOKIE['gebruikersnaam']."' AND status!='Verbannen'")or die(mysql_error());
If(mysql_num_rows($lid) == 0)
$ingelogd = 0;
Else
$ingelogd = 1;
$gebruiker = mysql_fetch_assoc($lid);
}
Else
{
$ingelogd = 0;
}
Die @ ervoor weghalen sowieso.
Op die manier fouten maskeren is niet netjes.
Fouten moet je weghalen, en niet maskeren.
Maar als jij gewoon:
echo $_COOKIE['gebruikersnaam']; weergeeft doet ie ook niks?
Wat hoelang blijf je dan ingelogd zo:
3600*12
Kun je niet doen wanneer je de site afsluit, dat je dan ook uitgelogd bent?
Het alternatief is je inlogsysteem op sessies basseren en vervolgens in je php.ini de session.cookie_lifetime op 0 zetten. Op die manier wordt de sessie beëindigd als de browser afgesloten wordt en de gebruiker op die manier dus uitgelogd.
Wat hij kan doen, zoals als jij (Blanche) al zegt, sessies gebruiken, als dat aanvink vakje niet gebruikt is, of als dat vakje wel is aangevinkt dan gewoon ook 2 cookies erbij doen met bijvoorbeeld userid en password.
Dan bovenaan je script check je of de cookies bestaan, haal je de data op bij die userid, verifieer je met dat wachtwoord, en als alles klopt, sessies aanmaken zoals dat ook bij de login ging, dan kan je overal in de site sessies checken aangezien die toch altijd aangemaakt worden.
Dan wel met een ISSET erbij of de sessie wel bestaat, indien niet, ben je er als gast.