Bug #18031 Updated: PHP engine runs user-based read and disconnect functions when open return false

From: Date: Fri, 28 Jun 2002 10:01:14 +0000
Subject: Bug #18031 Updated: PHP engine runs user-based read and disconnect functions when open return false
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-12386@lists.php.net to get a copy of this message
ID: 18031 Updated by: nbrandon@hotmail.com Reported By: nbrandon@hotmail.com Status: Open Bug Type: Session related Operating System: Win ME PHP Version: 4.1.2 New Comment: Just looked at the code for php4/ext/session/session.c revision 1.310. I'm no real coder but, I believe the area of code thats causing the problem is ... static void php_session_initialize(TSRMLS_D) { char *val; int vallen; /* Open session handler first */ if (PS(mod)->open(&PS(mod_data), PS(save_path), PS(session_name) TSRMLS_CC) == FAILURE) { php_error(E_ERROR, "Failed to initialize session module"); return; } ... I believe the return should read return FAILURE; I could be completely way-off - but thats my 2-cents. Previous Comments: ------------------------------------------------------------------------ [2002-06-27 19:51:50] nbrandon@hotmail.com I have created my own session handler using both a function and class based approach. On both occasions, when the "open" function returns a failure - "return false;", PHP engine tries to run both the "read" and "disconnect" functions. This causes a fatal error as shown below. Fatal error: Call to undefined function: query() in f:\cvs_dev\Neutec\website\www.xxxxxxxx.co.uk\site\include\DBSession.class.inc on line 139 Fatal error: Call to undefined function: disconnect() in f:\cvs_dev\Neutec\website\www.xxxxxxxx.co.uk\site\include\DBSession.class.inc on line 109 On both lines, PHP is trying to connect to the database using a database handler variable, and since the variable has not been initialised (because the "open" function failed), these fatal errors occur. If the PHP engine could not "open" a session, then it should not try and "read" or "disconnect" a session on exiting. Full source code can be supplied on request. Many Thanks Nick ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=18031&edit=1

« previous php.bugs (#12386) next »