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]

Reply via email to