php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.12.2008, 15:35  
Benutzer
 
Registriert seit: 12.11.2008
Beiträge: 38
superfutzi befindet sich auf einem aufstrebenden Ast
Standard login system, logout timer

hallo,

ich habe mir ein login system geschrieben, das die session id in einer mysql tabelle speichert. zum einen auch damit man feststellen kann ob jemand online ist oder nicht.
wenn jemand sich wieder ausloggt, dann löscht der die sessionid wieder aus der tabelle und wird offline angezeigt. alles kein problem.

ich will jetzt aber, das wenn jemand das browserfenster schließt ohne auf logout zu gehen oder wenn jemand eine bestimmte zeit nichts mehr macht, das sich der benutzer automatisch ausloggt, also die sessionid zerstört, und auch die session id aus der tabelle löscht.

wie kann ich da anfangen ?
superfutzi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.12.2008, 15:46  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Indem Du bei jeder Aktion des Nutzers ein Feld im Datensatz mit der aktuellen Zeit füllst. Sessions, deren Zeitstempel kleiner Jetzt-(irgendein Intervall) sind, werden als offline angesehen.
David ist offline  
Alt 27.12.2008, 15:51  
Benutzer
 
Registriert seit: 12.11.2008
Beiträge: 38
superfutzi befindet sich auf einem aufstrebenden Ast
Standard

das kapier ich jetzt nicht also ich mach noch eine tabelle wo die zeit gespeichert wird und jedes mal wenn der benutzer eine seite öffnet erneuer ich diesen. aber wann weis mysql jetzt ist die zeit um jetzt lösch das mal?
superfutzi ist offline  
Alt 27.12.2008, 16:04  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Nicht unbedingt eine neue Tabelle, einfach ein zusätzliches Feld. Nennen wir es zum Beispiel session_time (so heißt das entsprechende Feld bei phpBB).

Löschen brauchst Du den Datensatz nicht unbedingt. Das kannst Du bei vielleicht jedem tausendsten Loginversuch machen oder so ähnlich. Du fragst für Deine "gerade online"-Anzeige einfach nur Datensätze ab, deren Zeitstempel größer (Jetzt-Intervall) ist.
PHP-Code:
$tlimit time() - 240// vier Minuten

$sql "
  SELECT
    ...
  WHERE
    session_time > $tlimit
"

David ist offline  
Alt 27.12.2008, 16:06  
Benutzer
 
Registriert seit: 12.11.2008
Beiträge: 38
superfutzi befindet sich auf einem aufstrebenden Ast
Standard

so ich hab jetzt mir jetzt mal überlegt, wenn ich jedes mal wenn einer die startseite aufruft ein script abläuft
das aus jedem benutzer die zeit von mysql holt wo er das letzte mal etwas gemacht hat und von allen die sag ich mal jetz länger als 5 minuten nichts mehr gemacht haben gelöscht werden. das würde funktionieren aber es würde sag ich mal ne menge resourcen kosten oder?
superfutzi ist offline  
Alt 27.12.2008, 16:07  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

So ist das nun Mal mit database-driven applications.
"ne Menge resourcen" ist sehr relativ.

edit: Als Faustregel (die aber eben nicht immer stimmt) kannst Du Dir merken:
Lesen aus der Datenbank ist günstig, Schreiben teuer.
Damit hat MySQL ja auch lange Zeit bei MyISAM geworben: Einfügen können wir nur so lala. Bei UPDATE liegen wir im Mittelfeld. Aber Lesen können wir wie der Blitz.

Geändert von David (27.12.2008 um 16:13 Uhr).
David ist offline  
Alt 27.12.2008, 16:15  
Benutzer
 
Registriert seit: 12.11.2008
Beiträge: 38
superfutzi befindet sich auf einem aufstrebenden Ast
Standard

danke für die hilfe
superfutzi ist offline  
Alt 27.12.2008, 17:59  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Ich würde die session_id auch nicht unbedingt in die Tablle schreiben,lass das doch PHP machen. Ich habe mir das auch angewöhnt. Wenn mal viele User online sind wirst das merken.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 27.12.2008, 18:09  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Nur dass dann das "gerade online"-Feature etwas schwieriger zu realisieren ist
David ist offline  
Alt 27.12.2008, 18:15  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Nee David nicht wirklich,nur ein anderer Weg ist es.

Habe das bei meiner Seite die ich grad mache auch gemacht und es funzt.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysql LoginScriptzu MySqli LoginScript lithium PHP Tipps 2008 27 17.11.2008 19:48
Login System matii PHP Tipps 2008 6 16.04.2008 11:35
Login System Probleme ! 7Style PHP Tipps 2008 2 07.01.2008 13:55
Problem mit meinem Login System DJ Nuno PHP Tipps 2008 9 16.10.2007 16:44
Etwas komplexerer Login --> Keine Angst, Suche benutzt dethlef14 PHP Tipps 2006 7 02.10.2006 00:35
Session Logout Login Navigation TailerD PHP Tipps 2006 10 24.06.2006 17:12
Sicheres Login System? PHP Tipps 2006 11 14.03.2006 15:05
[Erledigt] PEAR AUTH_HTTP . login ist klar ? aber wie geht logout ? PHP-Fortgeschrittene 2 24.11.2005 09:37
Login System für die eigene HP? Datenbanken 1 05.10.2005 19:48
[Erledigt] Login klappt nicht korrekt PHP-Fortgeschrittene 11 22.07.2005 22:49
[Erledigt] Login, LogIn, Anmelden, Einloggen -> ??? Off-Topic Diskussionen 20 14.07.2005 11:01
login mit session id PHP Tipps 2005 10 26.01.2005 12:32
[Erledigt] htaccess Login / Logout PHP Tipps 2004 3 13.08.2004 15:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
web.de automatischer logout, http://www.php.de/php-tipps-2008/50113-login-system-logout-timer.html, web.de auto logout, automatischer logout bei web.de, web.de automatisches logout, php timer, logout timer php, web.de logout verlängern, automatischer logout web.de abschalten, automatischer logout web.de, php mysql login logout, php logout zeit, login und logout html, logout timer, mysql tabelle login logout, php log in timer, php session automatisches ausloggen deaktivieren, php time logout, automatisches log out web de verlängern, logout bei web.de verlängern

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum