Resource type and session problem.
| From: | Przem Kowalczyk | Date: | Fri, 01 Sep 2000 06:51:56 +0000 |
| Subject: | Resource type and session problem. | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-14736@lists.php.net to get a copy of this message | ||
Hi.
I have a problem with storing (and retreiving) object that
has resource var from session.
An example: (wrote by Jouni, I've added a few lines):
<?
class User_test {
var $db_user;
function User_test($userbase) {
$this->CONF['userbase'] = $userbase;
return true;
}
function eBase()
{
$userbase = $this -> CONF['userbase'];
$this->db_user = pg_connect("dbname=$userbase") or die("Can't
connect<br>");
}
function exec($query) {
echo "exec: gettype(user->db_user): ".gettype($this->db_user) . "
".$this->db_user. "<br>\n";
$result = pg_exec($this->db_user, $query);
return $result;
}
}
function sess_start_test() {
global $user;
if (!is_object($user))
{
$user = new User_test('site');
}
session_register('user');
$user -> eBase();
$result = $user->exec("select * from people");
echo "sess_start: gettype(user): ". gettype($user) . "<br>\n";
echo "sess_start: gettype(user->db_user): ".gettype($user->db_user) . "
".$user->db_user. "<br>\n";
echo "sess_start: gettype(result): ".gettype($result) ." ".$result.
"<br>\n";
}
sess_start_test();
echo "main: gettype(user): ".gettype($user) . "<br>\n";
echo serialize($user). "<br>";
echo "main: gettype(user->db_user): ".gettype($user->db_user) ."
".$user->db_user. "<br>\n";
$result = $user->exec("select * from people");
echo "main: gettype(result): ".gettype($result) . "
".$result."<br>\n";
?>
When I visit the page for the first time:
exec: gettype(user->db_user): resource Resource id #2
sess_start: gettype(user): object
sess_start: gettype(user->db_user): resource Resource id #2
sess_start: gettype(result): resource Resource id #3
main: gettype(user): object
O:9:"user_test":2:{s:4:"CONF";a:1:{s:8:"userbase";s:4:"site";}s:7:"db_user";i:0;}
main: gettype(user->db_user): resource Resource id #2
exec: gettype(user->db_user): resource Resource id #2
main: gettype(result): resource Resource id #4
But after reloading: (and restoring $user from session)
exec: gettype(user->db_user): resource Resource id #2
sess_start: gettype(user): object
sess_start: gettype(user->db_user): resource Resource id #2
sess_start: gettype(result): resource Resource id #3
main: gettype(user): object
O:9:"user_test":2:{s:4:"CONF";a:1:{s:8:"userbase";s:4:"site";}s:7:"db_user";i:0;}
main: gettype(user->db_user): integer 0
exec: gettype(user->db_user): integer 0
Warning: Supplied argument is not a valid PostgreSQL link resource in
/www/virtual/site/htdocs/jouni.php on line 19
main: gettype(result): NULL
Am I missing something or is it a bug?
Przem