May i ask what the advantage of storing objects in session is ? Does it
cause overhead ? Like should i store the most common classes like the db and
auth class in a session ?

-----Original Message-----
From: Jason Giangrande [mailto:[EMAIL PROTECTED]
Sent: Friday, April 09, 2004 2:21 PM
To: [EMAIL PROTECTED]
Subject: Re: [PHP] Serializing objects and storing them is sessions


Jason Wong wrote:
> On Friday 09 April 2004 11:07, Jason Giangrande wrote:
>
>>Jason Wong wrote:
>>
>>>What does the php error have to say about it?
>>
>>php error?  I'm sorry but I don't know what you are talking about.
>
>
> Sorry, I meant to say "php error log". You should ALWAYS enable full error
> reporting. And whenever you encounter a problem the first thing you should
do
> is check the error log.

I do not have error logging enabled.  All errors are displayed to the
screen.  This is not a production server I am testing on.

>>The
>>only error I get is that a call to a member function on a non-object.
>>Here's the error (path has been changed):
>>
>>Fatal error: Call to a member function on a non-object in
>>/path/to/php/script/test.php on line 16
>
>
> And what code are you running to get that error? Because AFAICS the code
you
> presented cannot produce that error.

I wasn't showing the method call, because it isn't what's causing the
problem (well I don't think so, anyway).  The problem is the session not
unserializing for some reason.  Here is the code.

Page one:

require_once('UserAuth.inc');

$auth = new UserAuth('file', array('file' => '/tmp/password'));

if (!empty($_POST['username']) && !empty($_POST['password'])) {
     //$auth = new UserAuth('file', array('file' => '/tmp/password'));
     if ($login = $auth->login($_POST['username'], $_POST['password'],
$secret_word)) {
                session_start();
                $_SESSION['auth'] = serialize($auth);
                //session_register("auth");
                //var_dump($_SESSION['auth']);
                header('Location: http://example/code/php/test.php');
                //$auth->debug();
        die();
        } else {
                var_dump($login);
                echo 'Test failed!';
                die();
        }
}

<More code down here>

Page two:

require_once('UserAuth.inc');

session_start();

if (!empty($_SESSION['auth'])) {
        var_dump($_SESSION['auth']);
        $userauth = unserialize($_SESSION['auth']);
        //$auth = $_SESSION['auth'];
        var_dump($userauth);
}

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
<head>
     <meta http-equiv="content-type" content="text/html;
charset=iso-8859-1" />
     <title>UserAuth Test</title>
</head>

<body>

<?php
echo $vars;
?>

<a href="/admin/login.php?logout">Logout</a>
</body>
</html>

<?php
} else {
        var_dump($vars);
        session_destroy();
}

--
Jason Giangrande <[EMAIL PROTECTED]>
http://www.giangrande.org
http://www.dogsiview.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to