WinFuture-Forum.de: Autom. Logout! - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Autom. Logout!


#1 Mitglied ist offline   nuts 

  • Gruppe: aktive Mitglieder
  • Beiträge: 441
  • Beigetreten: 07. Februar 02
  • Reputation: 0

geschrieben 13. Oktober 2004 - 22:31

N Abend Allerseits.

Habe da eine kleinere Hürde vor mir, diese zu nehmen ich momentan einfach nicht im Stande bin, also:

Ich habe ein CMS geschrieben, nichts großes, aber für die Zwecke ausreichend. Loggt man sich ein, sieht man den aktuellen Stand der angemeldeten Personen (ich lasse beim einloggen den status mit online=1 in die Datenbank schreiben), loggt man sich out, wird eine 0 reingeschrieben. Was ist also wenn man das Browserfenster einfach schließt? Genau, die 0 wird nicht gesetzt ... da kommt ihr ins Spiel. Hat wer eine Idee wie man das hinbekommt?

Vielen Dank schonmal im Vorraus,

nuts!

Dieser Beitrag wurde von nuts bearbeitet: 13. Oktober 2004 - 22:35

0

Anzeige



#2 Mitglied ist offline   insane138 

  • Gruppe: aktive Mitglieder
  • Beiträge: 302
  • Beigetreten: 05. August 02
  • Reputation: 0
  • Wohnort:Leoben
  • Interessen:Corn flakes :>

geschrieben 14. Oktober 2004 - 14:26

cookies di enicht lang andauern?!?
0

#3 Mitglied ist offline   nuts 

  • Gruppe: aktive Mitglieder
  • Beiträge: 441
  • Beigetreten: 07. Februar 02
  • Reputation: 0

geschrieben 15. Oktober 2004 - 15:20

DU hast mein Problem nicht verstanden, aber danke für den Tipp.
0

#4 _Benjamin_

  • Gruppe: Gäste

geschrieben 15. Oktober 2004 - 18:53

du lässt nen script via cronjob laufen welches im zeitraum von 10 minuten überprüft ob der user noch online ist - wenn nicht dann lösch ihn aus der liste.

oder bau das script auf deine startseite mit ein ... sind eh nur 3-5 zeilen.
0

#5 _FF1980_

  • Gruppe: Gäste

geschrieben 16. Oktober 2004 - 16:37

Jepp, ein Timeout wäre sinnvoll und ist einfach zu realisieren...

Pseudo-Code
$UserLogin=1 // User loggt sich ein
Counter=0; // Zähler auf 0
Do
sleep(10000); // 10 Sekunden warten...
Counter++; // Zähler um 1 erhöhen
While Counter =< 60; // für 10 Minuten bis Auto-Logout...
$UserLogin=0; //Login auf 0 setzen, wenn Counter auf 60....

Dieser Beitrag wurde von Connect2004 bearbeitet: 16. Oktober 2004 - 16:43

0

#6 Mitglied ist offline   Matze 

  • Gruppe: aktive Mitglieder
  • Beiträge: 666
  • Beigetreten: 29. Februar 04
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 17. Oktober 2004 - 10:37

// Aktiv = Timestamp von vor 5 Minuten
$aktiv = mktime(date("H"),date("i")-5,date("s"),date("m"),date("d"),date("Y"));

// Setze die User auf offline, die vor 5 Minuten zuletzt aktiv waren.
UPDATE 'useronline'
SET online = '0'
WHERE letzte_aktivitaet <= '$aktiv'

Das Feld letzte_aktivitaet muss aber den aktuellen UNIX-Timestamp beinhalten.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
0

#7 Mitglied ist offline   FutureCrasher 

  • Gruppe: aktive Mitglieder
  • Beiträge: 249
  • Beigetreten: 12. April 03
  • Reputation: 0
  • Wohnort:Nürnberg

geschrieben 17. Oktober 2004 - 18:21

alles n bisschen performance-lastig, nich? :cursing:

Falls du Sessions benutzt, laufen die standardhaft eh nach ner halben stunde ab.
Ebenso kannst du den Tipp mit den Cookies oben befolgen.

Und is erstmal die Session weg, sollte niemand mehr an den Account kommen ohne Passwort - ansonsten is das System schrott.

Als kleine Erweiterung könntest du danach auchnoch einbauen, dass du dem User sagst, er soll sich das nächste Mal gescheit ausloggen, wenn noch eine 1 in der Datenbank steht.
0

#8 Mitglied ist offline   Matze 

  • Gruppe: aktive Mitglieder
  • Beiträge: 666
  • Beigetreten: 29. Februar 04
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 17. Oktober 2004 - 18:56

Alles eine Frage des Servers ^^
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
0

#9 Mitglied ist offline   nuts 

  • Gruppe: aktive Mitglieder
  • Beiträge: 441
  • Beigetreten: 07. Februar 02
  • Reputation: 0

geschrieben 17. Oktober 2004 - 19:18

Danke für die Tipps, Jungs. Das was ihr geschrieben habt ist mir selbst eingefallen, nur nicht der Tipp mit der Erinnerungsfunktion :cursing:
Werd die mal einbauen (wenn also die 1 drin steht, kriegt er verbal eine auf die Finger :cursing: ).
Werde es so lösen, dass immer wenn sich jemand einloggt, ein Script überprüft wo noch ne 1 steht und wenn diese länger als 60 Minuten da steht automatisch auf 0 setzt (aus Sicherheitsgründen gilt die Session dann halt nur 1 Stunde). :cursing:

Danke nochmal für die Mühen
0

#10 Mitglied ist offline   FutureCrasher 

  • Gruppe: aktive Mitglieder
  • Beiträge: 249
  • Beigetreten: 12. April 03
  • Reputation: 0
  • Wohnort:Nürnberg

geschrieben 17. Oktober 2004 - 22:21

lass doch das mit dem Script - ne Session sollte bei ner ordentlichen Serverkonfiguration auch so automatisch ohne zusätzliche Scripts enden.

Ich erwähnte oben schon, wenn du dich aber nur auf deine Überprüfung in der Datenbank verlässt, ob jemand online ist, ist das dumm.
Benutz die eingebauten Session-Funktionen von PHP.
Falls die nicht beendet werden nach ner Zeit, würd ich überlegen, den Hoster zu wechseln.

Das 1 musste in der Datenbank dann doch auch nimmer unbedingt zu ner 0 machen.
Dann hastes auch gleich leichter mit der Erinnerungsfunktion.

Übrigens: du schriebst oben etwas con CMS. Vorsicht: Nicht Portal und CMS verwechseln. Eine Erläuterung dazu findest du unter http://de.wikipedia....nagement-System
0

#11 Mitglied ist offline   hasch 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.790
  • Beigetreten: 28. Januar 04
  • Reputation: 0
  • Wohnort:Localhost
  • Interessen:Ach so viele ...

geschrieben 18. Oktober 2004 - 17:22

Eine andere Möglichkeit wäre es, per IP zu checken, ob der User noch online ist, beim einloggen wird die IP Adresse und eine 1 in die DB geschrieben und dann kannste prüfen, ob die reale IP des eingeloggten Users die aus der DB ist, wenn nicht dann kannste ja eine 0 reinschreiben lassen und wenn der User sich ausgeloggt hat könnte es auch auf 0 gesetzt werden.

Dieser Beitrag wurde von hasch bearbeitet: 18. Oktober 2004 - 17:24

0

#12 _Benjamin_

  • Gruppe: Gäste

geschrieben 18. Oktober 2004 - 19:05

@hash: das is plödsinn ... du müsstet vom server aus eine minütliche ping aktion starten, was zur totalen auslastung des server führen würde!

zumal viele timeouts durch router (ping blocken) zu Offline anzeige führen würden, obwohl sie online sind.

einfach ist halt mit cookie und sessions zu arbeiten, was anderes ist alles zu kompliziert oder zu hardware lastig
0

#13 Mitglied ist offline   FutureCrasher 

  • Gruppe: aktive Mitglieder
  • Beiträge: 249
  • Beigetreten: 12. April 03
  • Reputation: 0
  • Wohnort:Nürnberg

geschrieben 18. Oktober 2004 - 21:32

Zitat (hasch: 18.10.2004, 18:22)

Eine andere Möglichkeit wäre es, per IP zu checken, ob der User noch online ist, beim einloggen wird die IP Adresse und eine 1 in die DB geschrieben und dann kannste prüfen, ob die reale IP des eingeloggten Users die aus der DB ist, wenn nicht dann kannste ja eine 0 reinschreiben lassen und wenn der User sich ausgeloggt hat könnte es auch auf 0 gesetzt werden.
<{POST_SNAPBACK}>


ich denke, er meint das anders - es soll immer, wenn der user eine anfrage macht, seine IP geprüft werden.
Das ganze ist trotzdem keine sehr sinnvolle lösung, da die Session so theoretisch unendlich besteht, wenn der User sich nicht ausloggt und heute der große teil der Internet-User dynamische IPs hat - den rest kann man sich ja denken.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0