Denkfehler mit meiner Session

  • Hallo liebe Community,


    ich habe etwas überlegt ob ich meinen Fehler hier mal poste, auf der Hoffnung das einer meinen Denkfehler bemerkt.


    Ich habe eine Session-Klasse geschrieben:


    Das Script soll jeden Besucher eine Session verpassen....sofern der Besucher schon eine Session hat un diese schon in der Datenbank existiert, soll die bestehende Session überschrieben werden.
    Aber es wird nach jeden Reload auf der Seite eine neue Session angelegt was es ja nicht darf.


    Ich glaube ich habe einen Denkfehler drin.


    Hoffentlich kann mir einer helfen.


    Liebe Grüße
    palwal


    EDIT:
    Das ganze wird so aufgerufen:

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.

    2 Mal editiert, zuletzt von palwal ()

  • Hey palwal,


    Wenn du eine Session mit

    PHP
    $sess->createSession();

    erstellst, wird in deiner Klasse die Funktion

    PHP
    public function createSession($update = 0, $login = false, $einloguser = NULL) //0 = Neu erstellen, 1= Bestehende Session überschreiben

    aufgerufen.
    Der Status von

    PHP
    $update

    ist 0 und wird bei dir nicht Geändert, falls schon eine Session für den Benutzer exestiert, und deswegen wird auch immer ein neuer Eintrag in die Datenbank gesetzt. Überpfüfe am besten, ob eine Session für den Benutzer vorhanden ist, falls eine Vorhanden ist kannst du den Parameter

    PHP
    $update

    ja auf 1 setzen, und die Session in der Datanbank updaten lassen.


    Ich hoffe ich konnte dir weiter Helfen



    Mit freundlichen Grüßen
    SLaYz

  • Danke für deine Hilfe :)


    Jedoch habe ich den Fehler denke ich schon behoben. Es lag nicht an $update. Da mit ExistSession() 2 mal überprüft wird ob eine Session schon besteht (Einmal bei $update=0 und $update=1), sofern der User in einer Session ist, wird createSession() erneut aufgerufen aber mit dem Wert 1 bei $update. So soll es auch sein.


    Der Fehler lag daran das $_SESSION['sessionid'] paar Zeilen zu hoch war und dadurch bei jedem neuen Aufruf der User eine neue Sessionid bekommt und dadurch ExistSession() nie eine bereits eröffnete Session vom Nutzer feststellen konnte.

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.