php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.06.2004, 20:24  
Gast
 
Beiträge: n/a
Standard [Erledigt] Onlinetabelle

Hallo zusammen,

ich habe mir eine tabelle in der SQL Datenbank erstellt, bei der jeder User der sich auf meine Seite einloggt erfasst wird. So sehe ich, wer gerade eingeloggt ist.

Beim ausloggen wird der User aus der Onlinetabelle wieder gelöscht. Auch wenn der User nach 10 Minuten (meine Inaktivitätszeit) einen Link klickt und automatisch ausgeloggt wird, wird der Eintrag in der Onlinetabelle gelöscht.

Frage: Wie lösche ich den Eintrag aus der DB wenn der User den Broweser einfach schließt???

Gruß,
Carsten
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.06.2004, 21:01  
Gast
 
Beiträge: n/a
Standard

per JavaScript mit unload() ein PHP-Skript ausführen und die Session löschen <- unschön und nicht zu empfehlen
per CronJob jede Minute (als Beispiel) inaktive sessions löschen <- vernünftig


...gehört aber eigentlich nicht ins PHP-Profi-Forum
  Mit Zitat antworten
Alt 15.06.2004, 21:11  
Gast
 
Beiträge: n/a
Standard

Und wie richte ich so einen cron-job ein???

Hast du mir da ein Beispiel?

DANKE
  Mit Zitat antworten
Alt 15.06.2004, 21:15  
Gast
 
Beiträge: n/a
Standard

http://www.google.de/search?q=cronjo...le-Suche&meta=
Ergebnisse 1 - 10 von ungefähr 2,770 für cronjob einrichten. (0.17 Sekunden)

mehr sog i net....
  Mit Zitat antworten
Alt 15.06.2004, 21:20  
Gast
 
Beiträge: n/a
Standard

okay, klar, dass kann ich nachlesen.

Aber gibt es keine andere Möglichkeit das Problem zu lösen? Nicht auf dem Webserver sondern über meine Anwendung.

Verstehst du was ich meine?

Die Anwendung soll selbst merken wann der Eintrag aus der Online-Liste entfernt werden kann.
  Mit Zitat antworten
Alt 15.06.2004, 21:29  
Gast
 
Beiträge: n/a
Standard

ja, die Möglichkeit gibt es.. die fällt jedoch unter die gleiche Kategorie wie die mit JavaScript... das einzig sinnvolle und vernünftige ist die Lösung per Cron. Es sei dem, du lässt das Löschen der abgelaufenen Sessions bei der Überprüfung anderer User miteinbeziehen... aber was machst du, wenn keiner deine Seite besucht? Für die Zeit hast du immer ein paar Session-Leichen rumliegen... auch unschön...
  Mit Zitat antworten
Alt 15.06.2004, 21:39  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von cretter
Die Anwendung soll selbst merken wann der Eintrag aus der Online-Liste entfernt werden kann.
Ist doch keine Hürde, vor allem anderen Zeuch verfallene Sessions in der Usertabelle zu löschen. Bringt natürlich nur dann Punkte, wenn Du bei "jedem Besuch" einen neuen timestamp in der Tabelle setzt.
  Mit Zitat antworten
Alt 15.06.2004, 21:48  
Gast
 
Beiträge: n/a
Standard

Also jedesmal wenn ein User irgendwo klickt wird derzeit ein Timestamp in die session gelegt. So kann ich überprüfen ob jemand mehr als 10 Minuten irgendwo nicht mehr geklickt hat. Dann wird er automatisch ausgeloggt.

Du meinst also, dass ich diesen Timestamp auch in die Session schreiben sollte, und dann bei jedem Seitenaufruf die komplette Onlinetabelle auslesen soll und ausrechnen soll ob alle Timestamps noch gültig sind?

Ist das nicht ein zu großer Aufwand?
  Mit Zitat antworten
Alt 15.06.2004, 22:45  
Gast
 
Beiträge: n/a
Standard

Hallo!

Ich habe ein ähnliches Problem ganz einfach gelöst (allerdings mit MySQL-Tabelle):

Code:
"DELETE FROM `tabelle` WHERE `gueltigbis` < '" . time() . "'"
Wird bei jedem Start aufgerufen und ist eigentlich zuverlässig.

KMAssS
  Mit Zitat antworten
Alt 15.06.2004, 22:54  
Gast
 
Beiträge: n/a
Standard

also ich hab 3 felder für den online status:
last_login
last_logout
last_click
mein query sieht so aus
Code:
$online_SQL="SELECT * FROM user WHERE last_login>last_logout AND last_click>$now-300";
so wird jeder der sich nicht ausgeloggt hat und in den letzten 5 min. was gemacht hat als online bewertet
$now wurde vorher der wert time() zugewiesen
  Mit Zitat antworten
Antwort


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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
online tabelle, onlinetabelle, online tabelle php, php online tabelle, online-tabelle, inaktive user automatisch anschreiben php ohne cron, onlinetabelle mit link, php onlinetabelle, onlinetabelle google, javascript onlinetabelle auslesen

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

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