Günther S: Session-Werte nach session_start() nicht verfügbar

Beitrag lesen

Hallo wahsaga,

Wie hast du die Session-Daten wieder aus der DB rausgeholt?

ich nehme an du meinst den session handler "read"?

Und wie sieht dein GC bzw. die Löschfunktion aus?

Hier mal meine komplette Session-Handling Klasse:

  
class Session  
{  
 function Session()  
 {  
  session_set_save_handler(array('Session', '_open'),  
        array('Session', '_close'),  
        array('Session', '_read'),  
        array('Session', '_write'),  
        array('Session', '_destroy'),  
        array('Session', '_gc'));  
 }  
  
  
 function _open(){  
  // db verbindung bereits hergestellt  
 }  
  
 function _close(){  
    // db verbindung wird am ende des scripts geschlossen  
 }  
  
 function _read($unique_id){  
  global $db;  
  return $db->getRow("SELECT * FROM " . DBPREFIX . "sessions WHERE unique_id = " . Tools::escape4sql($unique_id));  
  /* ergibt z.B. folgendes Array:  
   Array  
   (  
    [unique_id] => 41b254ed2f638bd05fdb06442e0952b7  
    [last_access] => 2006-10-04 15:22:02  
    [session_data] => zaehler|i:0;  
   )  
  
  */  
 }  
  
 function _write($unique_id, $session_data){  
  global $db;  
  return $db->query("REPLACE INTO " . DBPREFIX . "sessions SET unique_id = " . Tools::escape4sql($unique_id) . ", last_access = NOW(), session_data = " . Tools::escape4sql($session_data));  
 }  
  
 function _destroy($unique_id){  
  global $db;  
  return $db->delete("sessions", "unique_id = " . Tools::escape4sql($unique_id));  
  /* gleichbedeutend mit mysql_query("DELETE FROM sessions WHERE unique_id = " . Tools::escape4sql($unique_id) */  
 }  
  
 function _gc($session_lifetime = SESSION_LIFETIME){  
  global $db;  
  return $db->delete("sessions", "last_access < DATE_SUB(NOW(), INTERVAL " . $session_lifetime . " MINUTE)");  
  /* gleichbedeutend mit mysql_query("DELETE FROM sessions WHERE last_access < DATE_SUB(NOW(), INTERVAL " . $session_lifetime . " MINUTE)" */  
 }  
}  

Gruß,
Günther

PS: Hier noch einige Daten von phpinfo():

session
Session Support  enabled
Registered save handlers  files user sqlite
Registered serializer handlers  php php_binary wddx

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:\Programme\xampp\tmp C:\Programme\xampp\tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0