Hallo,
ich habe ein Problem mit der Sessionverwaltung bei einem Programm, dass ich schreibe. Nach dem Login läuft das Programm in einem Popup ab, was auch alles wunderbar funktioniert. Wenn ich von diesem Popup in dem die Anwendung läuft ein weiteres Popup öffne ist die Session in diesem für einen Aufruf gültig und danach gelöscht.
Ich verwende für die Sessionverwaltung die nachstehende Klasse, die ich mal aus einem Buch abgeschrieben/umgeschrieben habe. Nachdem es bis jetzt immer problemlos funktioniert hat habe ich mich mit diesem Thema nicht wirklich auseinander gesetzt und kenne mich daher nicht so wirklich damit aus. Ohne die von mir verwendete Klasse tritt der Fehler nicht auf. Vielleicht erkennt da jemande woran es ligen könnte. (PHP Version 5.2.6, Apache/1.3 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.8f AuthPG/1.3 FrontPage/5.0.2.2635) :
ich habe ein Problem mit der Sessionverwaltung bei einem Programm, dass ich schreibe. Nach dem Login läuft das Programm in einem Popup ab, was auch alles wunderbar funktioniert. Wenn ich von diesem Popup in dem die Anwendung läuft ein weiteres Popup öffne ist die Session in diesem für einen Aufruf gültig und danach gelöscht.
Ich verwende für die Sessionverwaltung die nachstehende Klasse, die ich mal aus einem Buch abgeschrieben/umgeschrieben habe. Nachdem es bis jetzt immer problemlos funktioniert hat habe ich mich mit diesem Thema nicht wirklich auseinander gesetzt und kenne mich daher nicht so wirklich damit aus. Ohne die von mir verwendete Klasse tritt der Fehler nicht auf. Vielleicht erkennt da jemande woran es ligen könnte. (PHP Version 5.2.6, Apache/1.3 (Unix) mod_ssl/2.8.28 OpenSSL/0.9.8f AuthPG/1.3 FrontPage/5.0.2.2635) :
PHP:
class SessionManager
{
public function __construct()
{
ini_set('session.use_trans_sid', 1);
ini_set('session.use_cookies', 1);
ini_set('session.gc_probability', 1);
ini_set("session.gc_maxlifetime", "18000");
session_module_name("user");
session_set_save_handler(array('SessionManager',
'ms_open'),
array('SessionManager',
'ms_close'),
array('SessionManager',
'ms_read'),
array('SessionManager',
'ms_write'),
array('SessionManager',
'ms_destroy'),
array('SessionManager',
'ms_gc'));
session_name('SESSION');
session_start();
}
public function ms_open($sesspath, $sessname)
{
$db = new DataBase();
$db->open();
$lastAccess = time();
$sessid = session_id();
return $db->session_open($sessid, $lastAccess);
}
public function ms_read($sessid)
{
$db = new DataBase();
return $db->session_read($sessid);
}
public function ms_write($sessid, $varis)
{
$db = new DataBase();
return $db->session_write($sessid, $varis);
}
public function ms_destroy($sessid)
{
$db = new DataBase();
return $db->session__destroy($sessid);
}
public function ms_gc($sesslt)
{
$db = new DataBase();
return $db->session_gc($sesslt);
}
public function ms_close()
{
//
}
}