|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-06-27 19:51 UTC] nbrandon at hotmail dot 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 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 20 21:00:02 2025 UTC |
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.