我需要知道用户是否已登录并需要在CakePHP外部的信息访问,但是在同一个域中。
我已尝试过以下代码
session_start();
session_name('CAKEPHP');
if(isset($_COOKIE['CAKEPHP'])){
session_id($_COOKIE['CAKEPHP']);
echo "isset<br/>";
var_dump($_SESSION);
}
echo "user :".$_SESSION['userCakeUser']['email'];
我有以下输出:
isset
array(1) {
["userCakeUser"]=> object(__PHP_Incomplete_Class)#1 (7)
{ ["__PHP_Incomplete_Class_Name"]=> string(12) "loggedInUser"
["email"]=> string(17) "a@a.net"<
["hash_pw"]=> string(65) "dsfsdfsdfsdfsdfsdfddsfsdfsdfsdf"
["user_id"]=> int(4) ["title"]=> string(10) "New Member"
["displayname"]=> string(5) "Toto"
["username"]=> string(5) "Toto"
}
}
Fatal error: Cannot use object of type __PHP_Incomplete_Class as array on line 15
请告诉我如何访问电子邮件。
答案 0 :(得分:1)
错误消息为您提供了有关错误的足够信息:
Fatal error: Cannot use object of type __PHP_Incomplete_Class as array on line 15
这是你正在处理的对象。试试:
echo "user :".$_SESSION['userCakeUser']->email;
答案 1 :(得分:0)
谢谢@Inigo Flores,
它更好,但我有以下错误:
注意:main():脚本尝试执行方法或访问不完整对象的属性。请确保类定义&#34; loggedInUser&#34;您尝试操作的对象是在 unserialize()被调用之前加载或提供__autoload()函数来加载第16行的类定义。
所以我已经包括了这个课程:
protected void btnBegin_Click(object sender, EventArgs e)
{
pnlMessage.Visible = false;
Page.Validate();
if (Page.IsValid)
{
// check some conditions. if fails:
ltlMessage.Text = "Reason for failure";
pnlMessage.Visible = true; // works
}
}