【问题标题】:Notice: Undefined index: session PHP注意:未定义索引:会话 PHP
【发布时间】:2017-02-02 00:05:59
【问题描述】:

此错误仅在用户未登录时显示。我知道已经有几个这样的错误,我尽我所能对它们进行了测试。但我仍然无法弄清楚这一点。

注意:未定义的索引:第 10 行 ..index.php 中的 user_session

<?php 
session_start();

if (session_status() == PHP_SESSION_NONE){
    header('Location: index.php');
}

if (session_status() == PHP_SESSION_ACTIVE) {
   $session = $_SESSION['user_session']; //line 10
}

【问题讨论】:

  • 您是否已经在会话变量中设置了值。尝试print_r($_SESSION)检查会话数组中是否存在变量。
  • 在标题位置之后你必须死 )))

标签: php


【解决方案1】:

当用户登录时,您必须先设置此$_SESSION["user_session"]=$value;,然后只有您才能访问它。您正在尝试访问尚未在任何地方设置的变量。所以它抛出未定义的索引。

【讨论】:

  • 我在下面尝试了 Sagar 的代码,它引入了一个新错误,导致我明白了你想说的意思。 $_SESSION 数组不包含任何值。
  • 未来还要确保在将任何值分配给变量之前使用 isset()。在更大的项目中,调试这些错误变得很痛苦。
【解决方案2】:

如果您要修复此错误消息,请尝试以下代码,您的代码更改如下:

<?php 
session_start();

if (session_status() == PHP_SESSION_NONE){
header('Location: index.php');
}

if (session_status() == PHP_SESSION_ACTIVE) {
if( isset($_SESSION['user_session']) && !empty($_SESSION['user_session']) ) 
$session = $_SESSION['user_session']; //line 10
}

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2016-04-28
    • 2016-08-04
    相关资源
    最近更新 更多