Logout nach x minuten

Alles, was PHP betrifft, kann hier besprochen werden.

Logout nach x minuten

Postby Supernora » 10. March 2005 15:14

Hi,

versuche gerade herauszufinden, wie es möglich ist, einen Zugriff duch einen Benutzer auf meine Datenbank nach einer gewissen Zeit (in der keine Eingaben erfolgt sind) automatisch auszuloggen.
Wie muss ich das in mein php Script implementieren?
Könnt ihr mit da weiterhelfen?

Vielen Dank!!
Supernora
 
Posts: 4
Joined: 25. January 2005 13:58

Postby deepsurfer » 10. March 2005 17:02

bin kein php guru , aber soweit ich mich erinnere ordnest du jedem connect eine session-ID zu diese kann vom server überprüft werden und bei einem vorgegebenen zeitpunkt ohne aktivität wird diese session aus dem speicher genommen und der user ist pfysisch nicht mehr existent.

dazu hat PHP.NET aber anleitungen :P
http://de.php.net/manual/de/function.session-id.php


bedenke aber das du (sofern du xampp benutzt) in der php.ini den "safe mode" auf off stellst.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Wiedmann » 10. March 2005 17:04

(in der keine Eingaben erfolgt sind)

Gar nicht. Woher soll PHP auf dem Server wissen was du auf deinem Client treibst?

Du könntest mit PHP nur Prüfen, wann der Client das letzte Mal auf den Server zugegriffen hat.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby S.Nora » 10. March 2005 17:17

hm,

dann überleg ich mir es erst noch mal, ob es wirklich nötig ist.

aber schon mal besten dank!
S.Nora
 
Posts: 12
Joined: 28. October 2004 12:38

Postby Kev » 10. March 2005 17:47

mach es doch als session logout....bzw sobald eine bestimmte zeit abgelaufen ist wird er ausgeloggt
User avatar
Kev
 
Posts: 269
Joined: 09. October 2004 13:25
Location: NRW/Hamm

Postby rene.pr » 11. March 2005 07:54

Hallo Nora!

Es geht ganz einfach du regestrierst in der Session einfach die loginzeit und jedesmal wenn der user eine neue seite anfordert änderst du die zeit. wenn eine seite vom user angefordert wird überprüfts du ob der zeitabschnitt überschritten ist der erlaubt ist wenn ja sesseion_destroy

bsp.

$_SESSION['login'] = "12:20:11:01:1975"; // Achtung hier musst du natürlich die zeit bereits dazu gerechnet haben ab wann session beendet wird

if ($_SESSION['login'] < $aktuelle_zeit)
die ("zeit abgelaufen");


lg
Renè
rene.pr
 
Posts: 28
Joined: 20. December 2004 11:12

Postby S.Nora » 11. March 2005 10:19

Hatte es mir ja eigentlich so vorgestellt, dass wenn keine Eingaben mehr kommen er sich selbst ausloggen soll.
Sehe jetzt aber auch das Problem (nach einigem Nachdenken), dass man das gar nicht überprüfen kann (s. Wiedmann).
Dann soll es wohl nicht sein.

danke & ciao
S.Nora
 
Posts: 12
Joined: 28. October 2004 12:38

Postby Kev » 26. March 2005 18:00

Doch man kann es...so machen ich mach es nämlich genau so nur eben nach 900sec ca...
Hier die Lösung:
Du packst irgendwo im Script das hier rein:

mysql_query("UPDATE accounts SET laston = NOW() WHERE name = $_SESSION[name]");

Und dann einfach:
$sql = "SELECT * FROM accounts WHERE laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-"900" seconds"))."' AND name = $_SESSION[name]";
$result = mysql_query($sql);
$row = mysql_fetch_array();


EDIT:
Rene war aber schon richtig so
User avatar
Kev
 
Posts: 269
Joined: 09. October 2004 13:25
Location: NRW/Hamm


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests