0

我有个问题 ,

我有一个检查用户登录的登录页面,当用户成功登录时,我开始一个新会话:

$loggedIn = new loggedIn();
                    $loggedIn->email = $userdetails["email"];
                    $loggedIn->displayname = $userdetails["display_name"];
                    $loggedIn->username = $userdetails["user_name"];


                                        var_dump($loggedIn->username);

                    //Update last sign in
                                        session_start();
                    $_SESSION["user"] = $loggedIn;

                                        $kk =  $_SESSION["user"];
                                        var_dump($kk->username);

它显示成功会话创建,但是当我转到其他页面或返回此页面时,我没有会话:

isset($_SESSION["user"])

为什么 ?

4

2 回答 2

1

您需要session_start();在要使用会话的每个页面的顶部。还要确保class loggedIn在您需要它的每个页面上都定义了 。

于 2012-11-16T15:35:22.773 回答
0

session_start()如果您想从会话中检索数据,则必须 在每个页面中插入它。session_start()必须在向浏览器输出任何内容之前调用。

在您可以使用您的功能并检索信息之后。如果您想查看已存储到会话中的所有数据,您可以像这样打印数组会话:

var_dump($_SESSION);

另一个可能的问题可能是您的班级loggedIn
您是否以正确的方式实例化了这个类?
你可以在那个类或类似的东西中有一些错误。

于 2012-11-16T15:33:21.257 回答