Bug #18031 Updated: PHP engine runs user-based read and disconnect functions when open return false
| From: | nbrandon at hotmail dot com | 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