An update... I had register_globals turned off. Now that I've turned register_globals on and changed my references from $HTTP_SESSION_VARS['ucAuthoUser'] to $ucAuthoUser it works as I expect.
I'm not real happy with having register_globals on, though, and I'd like to figure out what I was doing wrong. Thanks for any suggestions. -Steve On Thursday, October 25, 2001, at 12:07 PM, Steve Cayford wrote: > Well, it's probably me that's confused. I have an authenticate() > function which should start a session and if the user is not logged in > then show the login screen otherwise return after storing and > registering a user object in a session variable. This object has > accessor methods to get the login name, access level, etc... This seems > to work okay--within the authenticate function I can access the object > in the HTTP_SESSION_VARS array. But as soon as I return to the main > script it's gone. I must be doing something wrong with the scoping, but > I can't see what. Any thoughts? Here's the code: > > <?php > /* --------- */ > /* index.php */ > /* --------- */ > > require_once('ucautho/ucautho.inc'); > > authenticate(); > > print("From index testUser: " . $testUser->getLogin() . "<br>\n"); > print("From index HTTP_SESSION_VARS['ucAuthoUser']: "); > print($HTTP_SESSION_VARS['ucAuthoUser']->getLogin() . "<br>\n"); //this > is line 12 > > ?> > > <?php > /* ------------------- */ > /* ucautho/ucautho.inc */ > /* ------------------- */ > > function authenticate($appName="") { > global $HTTP_SESSION_VARS, $HTTP_POST_VARS; > global $testUser; > session_name("UCAutho"); > session_start(); > > if (isset($HTTP_SESSION_VARS['ucAuthoUser']) && > $HTTP_SESSION_VARS['ucAuthoUser']->isValid()) { > return; > } else { > if (isset($HTTP_POST_VARS['authoSubmit'])) { > $HTTP_SESSION_VARS['ucAuthoUser'] =& > new > UcAuthoUser($HTTP_POST_VARS['authoLogin'],$HTTP_POST_VARS['authoPword']); > if ($HTTP_SESSION_VARS['ucAuthoUser']->isValid()) { > session_register('ucAuthoUser'); > $testUser = $HTTP_SESSION_VARS['ucAuthoUser']; > print("From authenticate testUser: " . > $testUser->getLogin() . "<br>\n"); > print("From authenticate > HTTP_SESSION_VARS['ucAuthoUser']: "); > print($HTTP_SESSION_VARS['ucAuthoUser']->getLogin() . > "<br>\n"); > return; > } > } > showLogin($appName); > } > } > > /* more functions and the class declaration snipped */ > > ?> > > Here's what I get when I login as 'steve' with a good password: > > From authenticate testUser: steve > From authenticate HTTP_SESSION_VARS['ucAuthoUser']: steve > From index testUser: steve > From index HTTP_SESSION_VARS['ucAuthoUser']: > Fatal error: Call to a member function on a non-object in > /home/httpd/html/ucdamage/index.php on line 12 > > Note the testUser works in both instances, the session var only works > inside the function. > > -Steve > > > -- PHP General Mailing List (http://www.php.net/) > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > To contact the list administrators, e-mail: [EMAIL PROTECTED] > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]