【发布时间】:2015-09-01 20:56:09
【问题描述】:
我有我的应用程序,我在其中存储了一个$_SESSION['userId'] 变量,以了解用户是否已登录,以及它是什么用户。这是我在索引中的一段代码:
session_start();
if(!isset($_SESSION['userId']) || empty($_SESSION['userId']) )
{
header("Location: login.php");
}
而登录中的代码则相反。
到目前为止一切正常,我有一个小错误。我把上面的代码修改成这样:
session_start();
if(!isset($_SESSION['userId']) || empty($_SESSION['userId']) )
{
header("Location: login.php");
}else{
echo "<script>console.log('user id is set');</script>";
}
如果我以这种方式运行它,控制台日志会正确显示。但是,如果我将 console.log 行更改为:echo "<script>console.log('user id=".$_SESSION['userId']."');</script>";,则该站点永远不会加载,并且控制台中不会出现错误。
知道会发生什么吗?只是为了让您知道,我在 .php 文件中发现了这个错误,该文件使用 userId SESSION variable 将内容插入到 sql 数据库中,然后它突然停止工作。
【问题讨论】:
-
从不加载?就像死亡的白页一样?打开 error_reporting 和 display_errors。
-
尝试在标题后添加
exit;。 -
要展开@MarcB 的评论,请将
error_reporting(E_ALL); ini_set("display_errors", 1);添加到您的脚本中以显示正在发生的任何错误。 -
在浏览器中查看源代码。用户 ID 是否包含引号?
-
我重新加载了所有内容,现在它可以工作了。我认为可能发生的事情是我的会话变量已过期,这导致了问题。有谁知道会话变量是否过期
isset应该返回true?有什么方法可以检查变量是否过期?
标签: php session session-variables