【问题标题】:Can you create a session variable without a value?你可以创建一个没有值的会话变量吗?
【发布时间】:2015-07-12 14:56:27
【问题描述】:

我的问题正如标题中所问的那样。

登录后,我想创建一个如下所示的令牌:

 $_SESSION['token'] === true

我目录中的另一个页面包含一个如下所示的 if 语句:

   if($_SESSION['token'] === false)
    {die('not logged in');}

但是,即使在登录后,页面也会停止显示,而不是显示适当的HTML,如果令牌为真,则会显示。

【问题讨论】:

  • 了解比较和赋值的区别。
  • 您遇到什么错误?你为什么使用 === 而不是 = 来赋值 true?
  • 你的标题很神秘。为什么你认为$_SESSION['token'] 是一个“没有值”的会话变量?您看起来想在其中存储一个值。
  • 因为我在使用 var_dump 时出现了其他会话变量,但是由于某种原因 $_session['token'] 没有出现或被传递到其他页面。所以我不能用它来验证用户是否已经登录——因为它由于某种原因没有被存储。我认为原因是因为它没有赋值
  • 在单独的文件中创建session 对象,然后在两个文件中创建require

标签: php forms session


【解决方案1】:

正如另一位用户在 cmets 中提到的那样。您没有尝试使用以下行创建会话变量:

$_SESSION['token'] === true;

这不是作业。如果您想分配一个值,您需要执行以下操作:

$_SESSION['token'] = true;

我猜你现在可能已经解决了这个问题,但出于某种原因,我喜欢挖掘未回答的问题。

当然,您可以像设置任何其他变量一样比较会话变量。但是,除非您将该值设置为 false,否则它不会匹配 false 的测试。一旦你给它赋值,你当然可以使用 isset()。

【讨论】:

    猜你喜欢
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多