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]