mauricebis Posted November 11, 2010 Share Posted November 11, 2010 Hello, I installed the vertrigo package on Windows XP which runs php 5.12.14. I've a program that uses sessions whose data are stored in a MySql datbase. This program works fine on linux. Almost everything works on windows as well, session_start works, the write handler works. The read handler works and returns the serialized data of the session (I checked this), BUT $_SESSION is empty after session_start? Any help much appreciated. Thanks. Here below are the session configuration parameters and the read handler code. function set_session_parameters() { /* ini_set('session.save_path', '/home/piet/sessions/quotes');*/ session_name('QUOTEID'); /* call session_name before gc parameters, should be safer*/ ini_set('session.gc_divisor', '100'); ini_set('session.gc_maxlifetime', '86400'); /*garbage periodicity for sessions in seconds: 1 day, this applies only to sessions with 'started' status (see _clean_session_quote()).*/ ini_set('session.gc_probability', '35'); /*this value/divisor(default 100)=probability of launching the garbage collector on session_start(), here probability=3/10*/ ini_set('session.use_only_cookies', '0'); // don't rely on cookies ini_set('session.use_cookies', '0'); ini_set('url_rewriter.tags',''); //This is in the case the propagation of the sid in the url were enabled (session.use_trans_sid set to 1) while it should be disabled by default. ini_set('session.serialize_handler','php'); ini_set('session.save_handler','user'); //use a data base for custom storage of the sessions session_set_save_handler('_open_session','_close_session','_read_session','_write_session','_destroy_session_quote','_clean_session_quote'); }//set_session_parameters function _read_session($id){ global $dbref; $id = mysql_real_escape_string($id); $sql = "SELECT data FROM sessions WHERE id = '$id'"; if (!is_resource($result = @mysql_query($sql, $dbref))) throw new Exception("can't read session:" . mysql_error()); if (mysql_num_rows($result)){ $record = mysql_fetch_assoc($result); return $record['data']; } return ''; }//_read_session Quote Link to comment Share on other sites More sharing options...
mauricebis Posted November 18, 2010 Author Share Posted November 18, 2010 I reply to myself if that can be of any help to others. I didn't manage to get the default php session serializer to work. However, as the XML wddx serializer comes bundled with the windows php version, I explicitly switched to this serializer: ini_set('session.serialize_handler', 'wddx'); before starting the session and things work fine. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.