正在学习php,现在遇到一个麻烦的问题,在php中使用session存储对象没有问题,但是在另外一个页面中取不出session来,使用print_r发现显示的是__PHP_Incomplete_Class,表明那个对象值是存在的,使用序列化的方式如下:
$_SESSION['users'] = serialize($user);//赋值时把对象序列化一下 在输出页面:$login = unserialize($_SESSION['users']);//取值的时候再反序列化一下
重新运行,一样的效果,不能输出,代码如下:
输入页面:
<?php
class User
{
var $UserName;
var $Name;
var $Pwd;
}
$user = new User();
$user->UserName="abc";
$user->Name="zc";
$user->Pwd="123";
session_start();$_SESSION["users"]=$user;
?><!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">
<head>
<title>无标题页</title>
</head>
<body>
<form name="form1" method="post" action="display.php" id="form1">
<input type="submit" value="确定"></input>
<div></div>
</form>
</body>
</html>
输出页面:
<?php
session_start();
$login =$_SESSION["users"];
print_r($_SESSION["users"]);//此行有数据显示:“__PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => User [UserName] => abc [Name] => zc [Pwd] => 123 )”print $login->UserName;//此行不输出任何东西
?>
要求能输出 $login->UserName的属性值,如何做,请大人说明谢谢!
$_SESSION['users'] = serialize($user);//赋值时把对象序列化一下 在输出页面:$login = unserialize($_SESSION['users']);//取值的时候再反序列化一下
重新运行,一样的效果,不能输出,代码如下:
输入页面:
<?php
class User
{
var $UserName;
var $Name;
var $Pwd;
}
$user = new User();
$user->UserName="abc";
$user->Name="zc";
$user->Pwd="123";
session_start();$_SESSION["users"]=$user;
?><!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">
<head>
<title>无标题页</title>
</head>
<body>
<form name="form1" method="post" action="display.php" id="form1">
<input type="submit" value="确定"></input>
<div></div>
</form>
</body>
</html>
输出页面:
<?php
session_start();
$login =$_SESSION["users"];
print_r($_SESSION["users"]);//此行有数据显示:“__PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => User [UserName] => abc [Name] => zc [Pwd] => 123 )”print $login->UserName;//此行不输出任何东西
?>
要求能输出 $login->UserName的属性值,如何做,请大人说明谢谢!
解决方案 »
- php实现发送url到指定的客户端
- 写了一个PHP验证码生成例子,可是不生成SESSION。请各位指教
- 没有找到 PHP 扩展 mbstring,而您现在好像在使用多字节字符集。没有 mbstring 扩展的 phpMyAdmin 不能正确分割字符串,可能产生意想
- 关于PHP 301永久重定向的问题
- Ajax data 返回值的问题。
- 每刷新一次增加一条上一次的留言(怎么解决?)
- iframe刷新的问题!请大家帮忙解决一下!谢谢!
- 为什么在PHP中连数据库时,会提示找不到mssql_pconnect这个函数呢?
- 请教,如何弹出一个有可输入项目的对话框,同时屏蔽父窗口?
- 用PHP上传文件到LINUX服务器,结果文件用FTP软件删不掉
- PHP怎样判断复选框是否选中................
- php中调用java
user.php
<?php
class User
{
var $UserName;
var $Name;
var $Pwd;
}
在 a.php 中
<?php
include 'user.php';
$user = new User();
$user->UserName="abc";
$user->Name="zc";
$user->Pwd="123";
session_start();$_SESSION["users"]=$user;
在 b.php 中<?php
include 'user.php';
session_start();
$login =$_SESSION["users"];print $login->UserName;//
//看看这个
<?php
//=========================================================================================================================
function p($var){echo '<pre>';if((is_array($var)||is_object($var))&&count($var)){print_r($var);}else{var_dump($var);}exit;}
//=========================================================================================================================class dbconnect {
protected $link;
private $server, $username, $password, $db;
public function __construct($server, $username, $password, $db) {
$this->server = $server;
$this->username = $username;
$this->password = $password;
$this->db = $db;
$this->connect();
}
private function connect(){
$this->link = mysql_connect($this->server, $this->username, $this->password);
mysql_select_db($this->db, $this->link);
}
public function __sleep(){
return array('server', 'username', 'password', 'db'); //返回保存的属性
}
public function __wakeup(){
$this->connect();
}
}$db = new dbconnect('localhost', 'user', 'pass', 'dbname');
$srlz_db= serialize($db);
$unsrlz_db= unserialize($srlz_db);
p($unsrlz_db);?>