我正在帮助一个旧网站的客户端遇到几年前编写的代码(不确定这是否相关,但我提到它以防万一)并继续获得未定义的索引错误,尽管使用网站上提到的各种建议(即isset)。大多数情况下,我正在从较旧的服务器移动文件,网站工作正常,所以我不知道为什么我收到此错误。我假设与变量'sessionID'没有设置有关,但我找不到现有代码中的任何位置 -
<?php
session_start();
error_reporting(E_ALL);
if ($_SESSION['sessionID'] != session_id() || !$_SESSION['userID']) {
// login page
} else {
// admin page
}
?>
答案 0 :(得分:0)
PHP错误包含调试问题所需的所有信息。它提供:
这是一个像你得到的PHP错误的例子......
注意:未定义的索引:第2行/tmp/test.php中的sessionID
您拥有所需的一切,可以弄清楚您是如何得到此错误的。我可以通过查看此错误消息告诉您,例如,文件中的第2行 /tmp/test.php 我没有定义索引数组 $ _ SESSION 中的 sessionID 。
通过始终检查变量是否首先使用isset()来定义,可以轻松解决这个问题。
if (isset($_SESSION['sessionID']) && $_SESSION['sessionID'] != session_id()) {
// login page
} else {
// admin page
}
答案 1 :(得分:-2)
未定义的索引是通知,而不是错误。设置error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE)并查看是否修复了所有内容。