php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.07.2006, 14:55  
ssm
Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 65
ssm
Standard Userdaten temporär in Datenbank ablegen und löschen...

Hallo,

möchte nach einem Login denLogin-Status eines Users temporär in der DB speichern um vom Admin-Menu aus sehen zu können wer grade online ist.

Per Logout-Script wird dieser Status natürlich manuell wieder abgeändert, nur was mache ich, wenn einfach das Browserfester geschlossen wird oder sie Sitzung anderweitig beendet wird ohne, dass noch ein Update der DB erfolgen kann.

Bin sehr dankbar für jeden Tipp !
__________________
IP-Popularität und Linkpopularität
ssm ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.07.2006, 15:02  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du speicherst z.b. die zeit ein, wann er sich eingeloggt hat.

wenn er einen klick macht, dann wird wieder die neue zeit gespeichert.

ist seit der zeit (t0) eine halbe stunde (z.b.) vergangen, dann löscht ihn aus dieser db.


So würde es ich machen..




mfg
Andi
DER_Brain ist offline  
Alt 24.07.2006, 15:04  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Anstatt eines Feldes in der DB in der du nur speicherst Online/nicht Online legst du ein Feld an in dem du ein Datum/Zeitpunkt speichern kannst.

Bei jeder Aktualisierung deiner Seite trägst du dort den aktuellen Zeitpunkt ein.

Wer länger als 5 Minuten (oder was auch immer du für einen angemessenen Wert hälst) keine Aktion mehr auf deiner Seite gemacht hat zählt nicht mehr als Online...
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 24.07.2006, 15:10  
ssm
Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 65
ssm
Standard

naja aber ich müsste ja beim Aufruf JEDER Seite immer ALLE Userdaten durchchecken, on ein timestamp älter ist als mein gewähltes Timeout.

Ist das nicht ein bisschen happig ?
__________________
IP-Popularität und Linkpopularität
ssm ist offline  
Alt 24.07.2006, 15:14  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

naja, irgendwo wirst doch überprüfen, ob jem. eingeloggt ist.


wenn dem so ist, dann musst du einen query setzten der das ganze updated...


mfg
Andi

Edit:

Sorry.. ich wusste ned, dass es meinen beitrag eingetragen hat...
Zitat:
Couldn't get mail server response codes

DEBUG MODE

Line : 116
File : smtp.php
DER_Brain ist offline  
Alt 26.07.2006, 17:06  
ssm
Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 65
ssm
Standard

Angenommen ich hab im DB-Userprofil eine Spalte "is_online".
Die wird beim einlogoen des Users auf BOOL-> 1 gesetzt.

Wenn nun der User nicht den Logout-Knopf benutzt sondern einfach das Browserfenster schliesst - wie kann dieser Wert wieder auf 0 zurückgesetzt werden ?

Sollte ich bei JEDEM Seitenaufruf checken, ob ein User in der DB den Status 1-> online hat aber über ein Timeout hinaus keine neue Aktion ausgeführt hat ?
__________________
IP-Popularität und Linkpopularität
ssm ist offline  
Alt 26.07.2006, 17:10  
Gast
 
Beiträge: n/a
Standard

Jein, bei jeder Seite, bei der Du ein "is online:" anzeigen willst. Und deshalb legst Du einen Index über dieses Feld und die Sache ist kein/kaum ein Problem.
Das Feld is_online (0,1) kannst Du Dir sparen. Einfach nur ein Feld für Datum/Uhrzeit.
Dann fragst Du nur noch ab, welche User im Feld ..nennen wir es letzte_aktion einen Wert > Jetzt - x Minuten zu stehen hat. Bei mysql kannst Du das fast 1:1 so abfragen.
 
Alt 26.07.2006, 17:47  
ssm
Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 65
ssm
Standard

will kein "is_online" anzeigen sondern einen status im userprofil ohne logout-funktion ändern !!!

z.B. um multiple logins mit dem gleichen acc zu verhindern !
__________________
IP-Popularität und Linkpopularität
ssm ist offline  
Alt 26.07.2006, 17:54  
Erfahrener Benutzer
 
Registriert seit: 26.07.2006
Beiträge: 121
JumperII
Standard

Hallo,

per se sollten dynamische Daten wie der Logon-Status nicht in statisch orientierten Daten mit verwaltet werden. Du erlangst genau die Probleme, über die Du stolperst.

Den Status "ist angemeldet" sollte in einer eigenen "kleinen" Tabelle verwaltet werden. Sinnvollerweise sollte bei Anfragen über diese Tabelle auch eine Löschanfrage mit der berücksichtigten Timeout-Grenze erfolgen. Bei einer kleinen Tabelle und nicht extrem stark frequentierten Seiten ist eine solche Abfrage ausreichend und belastet kaum die Nerven des Nutzers.

gruß,
Jumper, the II.
JumperII ist offline  
Alt 26.07.2006, 17:58  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von ssm
will kein "is_online" anzeigen sondern einen status im userprofil ohne logout-funktion ändern !!!
ah ja?
Zitat:
Zitat von ssm
um vom Admin-Menu aus sehen zu können wer grade online ist.
na gut. Es läuft eh mehr oder weniger auf das Selbe hinaus.

Zitat:
Zitat von ssm
sondern einen status im userprofil ohne logout-funktion ändern !!!
Das wirst Du bei html/http nicht mit Sicherheit hinbekommen. Hast Du ja selbst schon erkannt - Browser zu und nichts wird mehr abschließend ausgeführt - schon garnicht auf dem Server. Es gibt das javascript event onunload, http://de.selfhtml.org/javascript/sp...r.htm#onunload
Aber auch das wird nicht ausgeführt, wenn der Benutzer einfach den Browser wegklickt - oder javascript abgeschaltet hat oder (wie ich) diese Funktion allgemein blocken läßt.

Deshalb die Krücke mit der Inaktivität über eine gewisse Zeit.
 
 


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
Objekt in Datenbank ablegen Timo Trallala PHP Tipps 2008 5 06.03.2008 05:29
[Erledigt] Passwörter in Datenbank ablegen PHP Tipps 2004 5 12.06.2004 11:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php beim logout temporäre werte löschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:13 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.