de tijd en gebruik van sessies
Om een of andere reden staat de tijd op een website die ik aan het maken ben voor iemand niet meer juist.
De minuten lopen precies wat achter op de werkelijke tijd.
Daar de toekomstige site over een login systeem beschikt is er een mysql database en ik gebruik sessies als men inlogt.Je weet wel die handige dingen die voor jou zaken kunnen onthouden als je bijvoorbeeld inlogt.
Ik denk dat het door die sessies komt dat mijn tijd niet meer correct staat
ik roep de tijd aan met : date('H:m:s');
Weet iemand een oplossing ?
--probleem2--
Ik houd een statistiekje bij zodat ik kan zien welke namen zijn ingelogd op een bepaald moment.Ik had een eerste oplossing bedacht door een kolom bij te maken in de mysql database en kon enkel de waarde 0 of 1 bevatten.
Met een sql instructie zette ik dat veld op 1 als men inlogt en weer op 0 als men uitlogt.Dat werkte perfect tot het moment je de browser afsloot zonder dat ik afmeldde en na een kwartiertje weer opstartte...ik bleek nog altijd ingelogd al was dat niet meer zo.Ik klikte niet op uitloggen dus was ik zogezegd nog ingelogd.
Tot op een bepaald moment ik hier enkele topics zag om met tijden te werken.Controleren wie er online was de laatste 5 minuten bijvoorbeeld.
Na dit eens grondig te bekijken besloot ik dit systeem toe te passen.Het werkte ook maar mijn naam verdween ook na die 5 minuten.
mijn werkwijze.
Als ik inlog sla ik de huidige tijd op met NOW() en sla dit op in mijn database in het veld 'tijd'
//script leden tellen
echo "Ingelogde leden:<br>";
if($connectie = mysql_connect("localhost","root","bartadmin")){
$db = mysql_select_db("main_db");
$sql = "SELECT naam FROM leden WHERE tijd > DATE_SUB(NOW(),INTERVAL 5 MINUTE)";
$result = mysql_query($sql);
while($record = mysql_fetch_object($result)){
$naam = $record->naam;
echo "<font color=#FFFF00>" . $naam . " "."</font><br>";
}
mysql_close($connection);
}
Dus we kijken als de opgeslagen tijd groter is dan de huidige tijd MIN 5 minuten..
dus logisch gezien zal dit de eerste 5 minuten nog altijd zo zijn maar daarna niet meer waardoor mn naam verdwijnt en ik ben nog steeds ingelogd.
Dus is deze methode ook niet waterdicht...
iemand een oplossing
dank u
Of is dat heel raar gedacht?
Elke keer als je een pagina laad moet je je login-tijd vernieuwen in de DB naar de huidige tijd.
Vervolgens kun je dan blijven checken of (DATE > (NOW - 5 minuten))
Je blijft zowiezo wel netjes ingelogd want je sessie blijft behouden zolang je elke X tijd (afhankelijk van je server configuratie) maar een pagina vernieuwd.