Rép. : Re: [PHP-DEV] PHP 4.0 Bug #6207: session_set_save_handler() misfunction

From: Date: Thu, 17 Aug 2000 08:27:10 +0000
Subject: Rép. : Re: [PHP-DEV] PHP 4.0 Bug #6207: session_set_save_handler() misfunction
Groups: php.dev 
Request: Send a blank email to php-dev+get-29228@lists.php.net to get a copy of this message
If you think it's called, how can you explain that there's no new row in the table php_sessions ? I've inserted the command exec("print 'TOTO' > /tmp/file.log"); just after the ligne print "WRITE!"); The execution of the script doesn't generate the file /tmp/file.log ...??? >>> Derick Rethans <d.rethans@jdimedia.nl> 09:57:44 17/08/2000 >>> On 17 Aug 2000 perceau@eram.fr wrote: > From: perceau@eram.fr > Operating system: Redhat Linux 6.2 > PHP version: 4.0.1pl2 > PHP Bug Type: Session related > Bug description: session_set_save_handler() misfunction > > I've written the following PHP script to test storing session datas into an Oracle 8i > database : > > <? > > function sess_open($save_path, $session_name) { > return true; > } > > function sess_close() { > return true; > } > > function sess_read($key) { > > print "READ !"; > include("oci8.inc"); > $db=new DB; > $db->connect(); > $db->query("SELECT value FROM php_sessions WHERE sesskey = '$key' AND expiry > > " . time()); > > if (list($value) = $db->FetchRow()) { > return $value; > } > > return false; > } > > function sess_write($key, $val) { > > print "WRITE!"; > include("oci8.inc"); > $db=new DB; > $db->connect(); > $expiry = time() + $SESS_LIFE; > $value = addslashes($val); > > $db->Query("INSERT INTO php_sessions VALUES > ('".$key."',".$expiry.",'".$value."'"); > return true; > } > > function sess_destroy($key) { > > include("oci8.inc"); > $db=new DB; > $db->connect(); > $db->Query("DELETE FROM php_sessions WHERE sesskey = > '".$key."'"); > return true; > } > > function sess_gc($maxlifetime) { > include("oci8.inc"); > $db=new DB; > $db->connect(); > $db->Query("DELETE FROM sessions WHERE expiry < " . time()); > return true; > } > > > session_set_save_handler("sess_open","sess_close","sess_read","sess_write","sess_destroy","sess_gc"); > > > session_register("toto"); > $toto=55; > ?> > > > After submitting it, the only thing that display on the IE 5.5 is READ! > > Why doesn't the session_write function be called ? It is called, but after the link to the browser has been closed. To see this, try writing to a file, instead of a print statement. Derick Rethans JDI Media Solutions

Attachment: [text/html] TEXT.htm
« previous php.dev (#29228) next »