use*_*636 6 php session serialization
用户通过身份验证后,我将类对象序列化并将其存储在会话中.但是,即使在使用unserialize()之后,我似乎无法打印其输出.
创建会话变量:
if(!isset($_SESSION['myObj']) && empty($_SESSION['myObj'])) {
$myObj = new User($row['user_id'], $row['username'], $row['user_level']);
$_SESSION['username']= $myObj->usr_name;
$s_Obj = serialize($myObj);
$_SESSION['myObj'] = $s_Obj;
Run Code Online (Sandbox Code Playgroud)
从不同的页面访问,没有输出:
$sObj = $_SESSION['Obj'];
$myObj = unserialize($s_Obj);
echo $myObj->usr_name;
Run Code Online (Sandbox Code Playgroud)
然而,这是有效的,所以我的班级没有任何问题.我也在session_start()两个页面中使用.
echo $_SESSION['username'];
Run Code Online (Sandbox Code Playgroud)
班级用户:
<?php
class User{
public $usr_id;
public $usr_name;
public $usr_level;
public $last_access_login;
public function __construct($id, $usr_name, $usr_level) {
$this->usr_id = $id;
$this->usr_name = $usr_name;
$this->usr_level = $usr_level;
$this->last_access_login = date("F d Y H:i:s.",time());
}
}
?>
Run Code Online (Sandbox Code Playgroud)
编辑:
这是我的vardump
array
'myObj' =>
object(__PHP_Incomplete_Class)[1]
public '__PHP_Incomplete_Class_Name' => string 'User' (length=4)
public 'usr_id' => string '3' (length=1)
public 'usr_name' => string 'student' (length=7)
public 'usr_level' => string '3' (length=1)
public 'last_access_login' => string 'November 26 2011 20:12:38.' (length=26)
'url' => string '/researchportal/proposal' (length=24)
Run Code Online (Sandbox Code Playgroud)
初始页面:
$s_Obj = serialize($myObj);
$_SESSION['myObj'] = $s_Obj;
Run Code Online (Sandbox Code Playgroud)
应该
$_SESSION['myObj'] = $myObj;
Run Code Online (Sandbox Code Playgroud)
下一页:
$sObj = $_SESSION['Obj'];
$myObj = unserialize($s_Obj);
Run Code Online (Sandbox Code Playgroud)
应该
$myObj = $_SESSION['myObj'];
Run Code Online (Sandbox Code Playgroud)
另外,在打电话之前尝试宣布你的课程session_start().
| 归档时间: |
|
| 查看次数: |
7872 次 |
| 最近记录: |