[Phplib-users] Strange session problem
Brought to you by:
nhruby,
richardarcher
From: Carl Y. <ca...@yo...> - 2002-03-17 06:57:07
|
I've been hosting a site with a hosting service that only let me use one database. Now I'm trying to get this site running on my home windows machine using FoxServ (a combination PHP/MySQL install package for Windows). In anticipation of future database fragmentation, I've split my session table into a separate database. When this site goes live commercially I intend to have multiple database servers and probably one that is dedicated to session data. So my session classes look like this: class SessionDB extends DB_Sql { var $Host = 'localhost'; var $Database = 'session'; var $User = 'myusername'; var $Password = 'mypassword'; } class Bank_CT_Sql extends CT_Sql { var $database_class = 'SessionDB'; ## Which database to connect... var $database_table = 'active_sessions'; ## and find our session data in this table. } class Bank_Session extends Session { var $classname = 'Bank_Session'; var $cookiename = ''; ## defaults to classname var $magic = 'Umuarama'; ## ID seed var $mode = 'get'; ## We propagate session IDs with cookies var $fallback_mode = 'get'; var $allowcache = 'no'; var $lifetime = 259200; ## 0 = do session cookies, else minutes var $that_class = 'Bank_CT_Sql'; ## name of data storage container var $gc_probability = 25; var $gc_time = 720; var $auto_init = '../include/setup.inc'; } But when I try to log in I get an error message on the login form page that displays after the login form itself. It says: Database error: Invalid SQL: update active_sessions set val='QmFua19TZXNzaW9uOiR0aGlzLT5pbiA9ICcnOyAkdGhpcy0+cHQgPSBhcnJheSgpOyAkdGh pcy0+cHRbJ2F1dGgnXSA9ICcxJzsgJHRoaXMtPnB0WydjaGFsbGVuZ2UnXSA9ICcxJzsgJEdMT0J BTFNbJ2F1dGgnXSA9IG5ldyBCYW5rX0NoYWxsZW5nZV9BdXRoOyAkR0xPQkFMU1snYXV0aCddLT5 hdXRoID0gYXJyYXkoKTsgJEdMT0JBTFNbJ2F1dGgnXS0+YXV0aFsndWlkJ10gPSAnZm9ybSc7ICR HTE9CQUxTWydhdXRoJ10tPmF1dGhbJ3Blcm0nXSA9ICcnOyAkR0xPQkFMU1snYXV0aCddLT5hdXR oWydleHAnXSA9ICcyMTQ3NDgzNjQ3JzsgJEdMT0JBTFNbJ2F1dGgnXS0+YXV0aFsncmVmcmVzaCd dID0gJzIxNDc0ODM2NDcnOyAkR0xPQkFMU1snY2hhbGxlbmdlJ10gPSAnZDljNTg3YTQ4YzkwMjA wMDU5M2Y1MGUxMTYyNTEwNzEnOyA=', changed='20020316202455' where sid='7c2d54a5282d1bc17c8ec19d28b662a7' and name='Bank_Session' MySQL Error: 1146 (Table 'bank_user.active_sessions' doesn't exist) Session halted. It looks like it is trying to save session info in the wrong database. But I put some debugging code into ct_sql.inc at line 97 just before the query tries to get executed to see what database name and host the class is actually set to. It is set to "session" and not "bank_user" (which is another database on the server). Is this a problem in phplib or in php itself? It seems really strange that the DB_Sql class would try to connect to the wrong database. Any ideas or help would be greatly appreciated. Thanks, Carl Youngblood |