ID: 25780 User updated by: marrtins at hackers dot lv -Reported By: marrtins at hackres dot lv +Reported By: marrtins at hackers dot lv -Status: Feedback +Status: Open Bug Type: Session related Operating System: w2k sp4 PHP Version: 4.3.3 New Comment:
<?php ini_set('session.use_cookies', true); ini_set('session.name', 'sid'); ini_set('session.auto_start', false); ini_set('session.gc_maxlifetime', time() + 31536000); // 1 year ini_set('session.cookie_lifetime', time() + 31536000); // 1 year ini_set('session.serialize_handler', 'php'); ini_set('session.gc_probability', 1); session_start(); ?> crash! without time() + year forks fine. Previous Comments: ------------------------------------------------------------------------ [2003-10-07 19:31:20] [EMAIL PROTECTED] And btw. read this page about the correct way to set the session ini settings: http://www.php.net/session session.gc_maxlifetime (you're now making this time() + time () + one year) session.cookie_lifetime (you're now making this time() + time () + one year) ------------------------------------------------------------------------ [2003-10-07 19:23:11] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip And if this doesn't work, provide a short, complete SINGLE script which can be cut'n'pasted into a file and run. ------------------------------------------------------------------------ [2003-10-07 14:59:07] marrtins at hackres dot lv sorry! ... } else { ... must be changed to } else if(tm1) { ------------------------------------------------------------------------ [2003-10-07 14:56:37] marrtins at hackers dot lv Description: ------------ I got a Apache(Server version: Apache/1.3.27 (Win32) / Server built: Oct 6 2003 13:10:44) crash when use my own session handling functions and session gets created first time. Application popup: Apache.exe - Application Error : The instruction at "0x1004d6ba" referenced memory at "0x00000000". The memory could not be "read". Click on OK to terminate the program Click on CANCEL to debug the program Reproduce code: --------------- 1. class.SessionHandler.php ------------------------ <? ... function sess_read($sess_id) { global $db; $sess = $this->get_sess($sess_id); if(!count($sess)) return ""; // <- crash when returning *anything* ... ?> 2. inc.session.php --------------- <? ini_set('session.save_handler', 'user'); ini_set('session.use_cookies', true); ini_set('session.name', 'sid'); ini_set('session.gc_maxlifetime', time() + 31536000); // 1 year ini_set('session.cookie_lifetime', time() + 31536000); // 1 year ini_set('session.serialize_handler', 'php'); ini_set('session.gc_probability', 1); $sess_handler = new SessionHandler(); session_set_save_handler( array(&$sess_handler, "sess_open"), array(&$sess_handler, "sess_close"), array(&$sess_handler, "sess_read"), array(&$sess_handler, "sess_write"), array(&$sess_handler, "sess_destroy"), array(&$sess_handler, "sess_gc") ); session_start(); ?> 3. ext/standard/dattime.c for some reasons 'php_gmtime_r' returns NULL ---------------------- ... tm1 = php_gmtime_r(&t, &tmbuf); ... } else if(tm1) { snprintf(str, 80, "%s, %02d-%s-%02d %02d:%02d:%02d GMT", day_short_names[tm1->tm_wday], tm1->tm_mday, mon_short_names[tm1->tm_mon], ((tm1->tm_year)%100), tm1->tm_hour, tm1->tm_min, tm1->tm_sec); } cahnge to: ... } else if(tm1) { ... --------------- Now works fine. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=25780&edit=1