Php session datenbank

Ich habe mit Hilfe eines Tutorials es geschafft die Session-Daten via Datenbank zu speichern. Auch bei einem erneuten Seitenaufruf werden diese Daten wieder korrekt zur Verfügung gestellt.

Jetzt würde ich gerne diese Daten auch noch auswerten und dabei die angemeldeten User ausgeben. Leider kann ich aus den zusammengestellten Session_Felder leider nicht die einzelnen Feldinhalte wieder ermitteln.

ich erhalte nur stets das gesamte array als string:
IP|s:21:„80.134.9.108(Remote)“;User|s:4:„Gast“;;

wie wandele ich dies nun wieder in das array zurück…?

hier unten meine Routine

mit besten Grüßen

Nils

Hier meine php-session-Datenbeank routine

<?php $MYSQL_HOST = "localhost";
$MYSQL\_USER = "......."; $MYSQL\_PASS = "......."; $MYSQL\_DATA = "......."; @mysql\_connect($MYSQL\_HOST, $MYSQL\_USER, $MYSQL\_PASS) OR die("Error: ".mysql\_error()); mysql\_select\_db($MYSQL\_DATA) OR die("Error: ".mysql\_error()); $sql = 'CREATE TABLE Sessions (' . ' ses\_id VARCHAR(32) NOT NULL PRIMARY KEY, ' . ' ses\_time INT NOT NULL DEFAULT \'0\', ' . ' ses\_value MEDIUMTEXT NOT NULL DEFAULT \'\' ' . ' )'; mysql\_query($sql); // Lifetime auf eine viertel Stunde setzen ini\_set('session.gc\_maxlifetime', 900); // gc mit einer Wahrscheinlichkeit von 1% aufrufen ini\_set('session.gc\_probability', 1); ini\_set('session.gc\_divisor', 100); function ses\_open($path, $name) { return TRUE; } function ses\_close() { return TRUE; } function ses\_read($ses\_id) { $sql = "SELECT ses\_value FROM Sessions WHERE ses\_id = '".mysql\_real\_escape\_string($ses\_id)."' "; $result = @mysql\_query($sql); // Fehler im Query, return leeren String if (!$result) return ''; // Session nicht gefunden, return leeren String if (!mysql\_num\_rows($result)) return ''; // Session gefunden, return Daten der Session $row = mysql\_fetch\_assoc($result); return $row["ses\_value"]; } function ses\_write($ses\_id, $data) { $sql = "REPLACE INTO Sessions (ses\_id, ses\_time, ses\_value) VALUES ('".mysql\_real\_escape\_string($ses\_id)."', '".time()."', '".mysql\_real\_escape\_string($data)."') "; return (bool)@mysql\_query($sql); } function ses\_destroy($ses\_id) { $sql = "DELETE FROM Sessions WHERE ses\_id = '".mysql\_real\_escape\_string($ses\_id)."' "; return (bool)@mysql\_query($sql); } function ses\_gc($life) { $ses\_life = time()-$life; $sql = "DELETE FROM Sessions WHERE ses\_time \< ".$ses\_life." "; return (bool)@mysql\_query($sql); } session\_set\_save\_handler ('ses\_open', 'ses\_close', 'ses\_read', 'ses\_write', 'ses\_destroy', 'ses\_gc'); session\_start(); function session\_counter() { $ses\_life = time()-120; $sql = mysql\_query("select \* from Sessions WHERE ses\_time \> ".$ses\_life); return mysql\_num\_rows($sql); } function session\_users() { $ses\_life = time()-120; $sql = mysql\_query("select \* from Sessions WHERE ses\_time \> ".$ses\_life); $\_daten = mysql\_fetch\_array($sql); print\_r($\_daten); echo ' '; $sql = mysql\_query("select \* from Sessions WHERE ses\_time \> ".$ses\_life); while ($\_daten = mysql\_fetch\_array($sql)) { $out = $\_daten['ses\_value']; echo $out.'; '; } } ?\>

Jetzt würde ich gerne diese Daten auch noch auswerten und
dabei die angemeldeten User ausgeben. Leider kann ich aus den
zusammengestellten Session_Felder leider nicht die einzelnen
Feldinhalte wieder ermitteln.

ich erhalte nur stets das gesamte array als string:
IP|s:21:„80.134.9.108(Remote)“;User|s:4:„Gast“;;

wie wandele ich dies nun wieder in das array zurück…?

http://php.net/session_decode