【问题标题】:PHP session variable undefinedPHP会话变量未定义
【发布时间】:2011-11-27 20:33:30
【问题描述】:

我有这个会话变量,当用户使用此登录时,我试图将其设置为访问级别:

 $accessquery = mysql_query("SELECT roleid FROM person WHERE email = '". $email ."'");
 $access = mysql_fetch_array($accessquery);

 $_SESSION['Access'] = $access;

但是它说“访问”是未定义的,这是什么问题?

编辑*

if (($_SESSION['Access']) == "2")

此处出现错误

编辑*

会话开始已被调用。

【问题讨论】:

  • 它在哪里说的?你记得开始会议了吗?
  • 贴出你有错误的代码。
  • 我没有看到在哪里定义了访问权限,也没有看到session_start();
  • 你真的应该小心使用这样的代码的 SQL 注入。如果这是生产代码,您的网站将在 2 分钟内被黑客入侵。

标签: php session-variables


【解决方案1】:

这里有两种可能性:

  1. 在页面开头使用session_start(); 开始会话。
  2. 使用以下代码:

    $accessquery = mysqli_query($conn, "SELECT roleid FROM person WHERE email = '". $email ."'", mysqli_store_result($conn));
    
    $access = mysqli_fetch_row($accessquery);
    
    $_SESSION['Access'] = $access[0];
    

【讨论】:

    【解决方案2】:

    要弄清楚发生了什么,我建议您使用

    print_r($any_variable);
    

    http://php.net/print_r

    【讨论】:

      【解决方案3】:

      你打电话给session_start();了吗?

      尝试使用固定值调试您的代码:$_SESSION["Test"]="test";,然后执行var_dump($_SESSION);

      【讨论】:

        猜你喜欢
        • 2014-06-16
        • 2011-10-27
        • 2015-04-21
        • 2023-03-14
        • 2018-05-29
        • 1970-01-01
        • 2015-11-05
        • 1970-01-01
        • 2018-02-16
        相关资源
        最近更新 更多