Hallo Community,
seit gestern Abend tüftel ich daran die Sessions mit jedem Seitenaufruf zu aktualsieren. Ansich funktioniert das auch, nur ich komme nicht an die neue SID ran, die ich benötige, wenn sich jemand anmeldet. Da ich vorhabe das Konto mit Hilfe der SID zu identifizieren.
Meine Versuche:
- jeden Schritt und aktuelle SID ausgeben
- googlen
- getestet unter Mozilla Firefox und Safari
- Skript überdacht und neu geschrieben
- "Traum-Dynamik-Forum" Beitrags-Titel überflogen
Zunächst zu dem was ich vorhabe:
Ich möchte Sessions in einer Datenbank speichern und mit jedem Seitenaufruf aktualisieren.
Schritt 1: Überprüfen ob eine Session in der Datenbank existiert.
Schritt 1.1: Wenn nicht, aktuelle Session eintragen und beende session Part
Schritt 2: Wenn eine Session mit dieser sessionID existiert..
Schritt 2.2: speichere die aktuelle sessionID in einer Variable
Schritt 2.3: generiere eine neue sessionID und speichere sie in einer neuen Variable.
Schritt 2.4: Aktualisiere die Datenbank mit Hilfe der beiden Variablen.
Nun zu meinem Problem:
Die "neue sessionID" ist eine andere, als die die in der Datenbank eingetragen wird. Die sessionID, welche in der Datenbank eingetragen wird, ist die mit neuem laden der Webseite alte sessionID.
Browserausgabe:
Seite wurde geladen:
alte SID = kcan3pv3rrl0qnkkvhlgqs0o82
1 Zeile betroffen
Vor generieren einer neuen SID:
alte SID = kcan3pv3rrl0qnkkvhlgqs0o82
Nach generieren einer neuen SID:
neue SID = dc44h2qpkuqp5gdnkjmupqehc3
Neue und Alte SID:
Alte SID: kcan3pv3rrl0qnkkvhlgqs0o82
Neue SID: dc44h2qpkuqp5gdnkjmupqehc3
SID aktualisieren:
------------------------------------------------------
Datenbankeintrag: fuo45nhuali84tkmn39gl3q2a5
------------------------------------------------------
Seite wurde geladen:
alte SID = fuo45nhuali84tkmn39gl3q2a5
1 Zeile betroffen
Vor generieren einer neuen SID:
alte SID = fuo45nhuali84tkmn39gl3q2a5
Nach generieren einer neuen SID:
neue SID = 1kg77fo463rk01ho4g7ak9nlh3
Neue und Alte SID:
Alte SID: fuo45nhuali84tkmn39gl3q2a5
Neue SID: 1kg77fo463rk01ho4g7ak9nlh3
SID aktualisieren:
------------------------------------------------------
Datenbankeintrag: u5qkr4vphh4vekikbq5djk6lr4
------------------------------------------------------
PHP-Code:echo '<h3>Seite wurde geladen:</h3>';
echo 'alte SID = '.session_id();
$this->alteSessionID = session_id();
//--> Hole den Datensatz der aktuellen Session
$sql = 'SELECT sessionID, value FROM sessions WHERE sessionID = "'.session_id().'"';
//--> Überprüfe ob ein Fehler bei der Abfrage auftrat
if ( ($result = $this->Objekt['DB']->query($sql)) === false ) {
echo '<h3>Abfragefehler</h3>';
} else {
//--> Überprüfe ob eine Zeile betroffen ist
if ( $this->Objekt['DB']->affected_rows != 1) {
//--> Keine Zeile betroffen? Trage einen neuen Datensatz ein
echo '<br />'.$this->Objekt['DB']->affected_rows.' Zeilen betroffen';
echo '<br />SID eingetragen: '.$this->alteSessionID;
$this->Objekt['DB']->query('INSERT INTO sessions VALUES("'.$this->alteSessionID.'", "'.time().'", "'.time().'", "guest")');
} else {
//--> Zeile betroffen? Aktualisiere die Datenbank
echo '<br />'.$this->Objekt['DB']->affected_rows.' Zeile betroffen';
echo '<h3>Vor generieren einer neuen SID:</h3>';
echo 'alte SID = '.session_id();
session_regenerate_id();
echo '<h3>Nach generieren einer neuen SID:</h3>';
echo 'neue SID = '.session_id();
$this->neueSessionID = session_id();
echo '<br /><br /><br /><h3>Neue und Alte SID:</h3>';
echo 'Alte SID: '.$this->alteSessionID;
echo '<br />Neue SID: '.$this->neueSessionID;
echo '<br /><br /><br /><h3>SID aktualisieren:</h3>';
$this->Objekt['DB']->query('UPDATE sessions SET sessionID = "'.$this->neueSessionID.'" WHERE sessionID = "'.$this->alteSessionID.'"');
} // if ( $this->Objekt['DB']->affected_rows == 1)
} // if ( ($result = $this->Objekt['DB']->query($sql)) === false )
Ich hoffe jemand von euch kann mir mit diesem Problem weiterhelfen! Vielen Dank im vorraus!![]()
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)