Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Session: PHP soll Verbindung prüfen!

  1. #1
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Session: PHP soll Verbindung prüfen!

    Hallihallo,
    ich hab mal ne Frage zu Sessions. Vielleicht kann mir jemand ja ne Idee geben.

    Ich habe eine Benutzerverwaltung auf Session-Basis erstellt, die alle eingeloggten User in meiner Datenbank mit SID und UserID speichert. Somit kann ich Bereiche für bestimmte User zugänglich machen oder eben nicht.
    Das funktioniert auch wunderbar. So nun habe ich mir noch eine Funktion gebaut, die anzeigt, wer gerade (oder vor Kurzem - das geht auch) online ist/war.
    Und hier stosse ich nun auf folgendes Problem:
    User die sich einloggen - also in der Datenbank verzeichnet sind- und sich nicht ausloggen, sondern den Browser schliessen, stehen weiterhin in der Datenbank und werden von meiner Funktion als online angezeigt. Logisch!

    Das ist aber nicht so toll und deshalb meine Frage: Kann man mit PHP die Existenz einer Session anhand ihrer Session-ID feststellen? Also, kann PHP prüfen, ob die Session-ID noch in Verwendung ist?

    Leider habsch dazu nicht so viel gefunden und bin auch eher pessimistisch, da Cookies ne clientseitige Geschichte sind. Aber vielleicht hat ja doch jemand ne Idee...
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    "Carpe Diem" powered by positiv Feelings

  2. #2
    König(in)
    Registriert seit
    20.11.2004
    Ort
    Fehmarn / Ostsee
    Beiträge
    1.079
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Mach doch in die Tabellen einen Timestamp mit rein. Wie bei den Sessions auf dem Server kannste dann regelmäßig die Gültigkeit der SessId anhand der Zeitangabe prüfen. Wenn zu alt -> raus aus der Datenbank. Wenn der User noch aktiv ist, dann muss der Eintrag eben immer mit nem neuen Timestamp versehen werden. Loggt er sich korrekt aus ist das kein Problem, Timestamp mit löschen... ist eh an den Eintrag gekoppelt.
    Gruß
    webbie

  3. #3
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von webbie
    Wenn zu alt -> raus aus der Datenbank. Wenn der User noch aktiv ist, dann muss der Eintrag eben immer mit nem neuen Timestamp versehen werden.
    Tja, genau diese Variante habe ich als erstes durchdacht und verworfen. Zum einen führt nicht jede Aktion zu einem DB-Zugriff, sondern
    es wir eine entsprechende Session-Variable verwendet. Zum anderen belastet der ständig neu zu schreibende Timestamp die
    Performance des Script's.

    Ich habe heut nochmal nachgedacht und bin auf folgenden Ansatz gekommen:
    Mit der Website wird eine ganz kleine JS-Routine gestartet, die alle 30sec. eine kurze Anfrage an den Server schickt. Sobald dieses
    "Päckchen" nicht mehr ankommt, wird die Session-ID aus der DB gelöscht. Als Datenpacket, welches übertragen wird, könnte
    bsp.weise die Sesssion-ID selbst dienen.

    Naja, so richtig gereift ist diese Idee noch nicht, aber somit sollte es möglich sein, bis auf Sekundenbasis den Loginstatus zu prüfen.

    Oder übersehe ich da was?
    "Carpe Diem" powered by positiv Feelings

  4. #4
    Forum Guru
    Registriert seit
    14.06.2004
    Ort
    Schleswig-Holstein
    Beiträge
    5.439
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Moin!

    Du machst da einen Denkfehler:
    Wenn der User den Browser schließt, dann ist kein JS mehr da, welches Anfragen an den Server senden könnte.

    G.a.d.M.

    Ronald

  5. #5
    König(in)
    Registriert seit
    20.11.2004
    Ort
    Fehmarn / Ostsee
    Beiträge
    1.079
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Und noch ein Denkfehler, den ich eigentlich als Meldung von Dir erwartet hätte, Ronald:

    Wenn jemand kein JS verwendet, dann wird auch die Session nicht aus der DB gelöscht. Eigentlich logisch.

    Ich würde meine Site so aufbauen, dass ein User nicht drumherum kommt und der Timestamp bei wesentlichen zentralen Aktionen immer gesendet wird. Das funktioniert jedenfalls mit jedem Browser.
    Auf keinen Fall kannst Du Dich auf Javascript verlassen, Deine DB wird sonst irgendwann wegen Überfüllung geschlossen.
    Gruß
    webbie

  6. #6
    Forum Guru
    Registriert seit
    14.06.2004
    Ort
    Schleswig-Holstein
    Beiträge
    5.439
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von webbie
    Und noch ein Denkfehler, den ich eigentlich als Meldung von Dir erwartet hätte, Ronald:

    Wenn jemand kein JS verwendet, dann wird auch die Session nicht aus der DB gelöscht. Eigentlich logisch.
    So weit wollt ich nicht in die Details vordringen

    G.a.d.M.

    Ronald

    z.Zt. fast 40° Fieber - shit Virus

  7. #7
    König(in)
    Registriert seit
    20.11.2004
    Ort
    Fehmarn / Ostsee
    Beiträge
    1.079
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    lol...

    Gute Besserung!

  8. #8
    Großmeister(in)
    Registriert seit
    03.01.2005
    Beiträge
    582
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hi Ronald,
    auch von mir "Gute Besserung!"
    MfG
    6_freddy

  9. #9
    Forum Guru
    Registriert seit
    14.06.2004
    Ort
    Schleswig-Holstein
    Beiträge
    5.439
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Merci,

    aber nun macht bitte nicht so'n Wirbel um meine Gesundheit, das wird schon ganz von allein wieder

  10. #10
    Kaiserliche Hoheit
    Themenstarter

    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Danke für eure Anregungen. Ich denke darüber nach.

    Aber!
    Zitat Zitat von Ronald
    Wenn der User den Browser schließt, dann ist kein JS mehr da, welches Anfragen an den Server senden könnte.
    Hier wurde meine Idee nicht verstanden. Sobald der Browser geschlossen wurde und die JS-Routine praktisch verendet ist,
    würde ja innerhalb der Vorgabezeit kein Päckchen der entspr. SID mehr den Server erreichen. Das wär doch toll, denn dann
    kann ich die SID aus der DB löschen.

    Zitat Zitat von webbie
    Wenn jemand kein JS verwendet, dann wird auch die Session nicht aus der DB gelöscht. Eigentlich logisch.
    Jupp, aber es handelt sich hier nur um den Admin-Zugang, der ohnehin JS voraussetzt.

    Aber wie gesagt. Danke für die Anregung und vielleicht bekomme ich es ja elegant gelöst. Dann melde ich mich hier wieder.
    "Carpe Diem" powered by positiv Feelings

Ähnliche Themen

  1. Prolog, Input prüfen?
    Von Vincent_Van im Forum Forum für alle anderen Programmiersprachen
    Antworten: 1
    Letzter Beitrag: 13.11.2007, 20:05
  2. Dateigröße prüfen
    Von JSpring im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 11.10.2007, 21:05
  3. soll ich oder soll ich nicht ?
    Von im Forum Off Topic und Quasselbox
    Antworten: 59
    Letzter Beitrag: 08.08.2007, 08:57
  4. Script soll browser Prüfen
    Von henno im Forum HTML & CSS Forum
    Antworten: 4
    Letzter Beitrag: 15.02.2007, 21:46
  5. prüfen ob $x ein vielfaches von $y ist....
    Von Gsus im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 30.09.2006, 17:19

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •