未定义的索引/行错误


Undefined index/row errors

在学习如何修复大多数未定义的索引错误之后,在一天结束时,我遇到了一些奇怪的错误,我无法使用isset修复(或者至少在我尝试时没有(。

第一个是这种类型的错误注意:未定义的索引:C:''wamp''www''forums''include''topic.php 第 4 行的页面在第 4 行:

 $page = ($_GET['page'] || $_GET['page'] < 0) ? "1" : $_GET['page'];

我尝试在开始时添加一个 isset,并且对在哪里添加 ( 感到非常困惑。我把它全部添加过来,每次它仍然是一个错误,所以我现在在想也许我根本不应该使用 isset?没有线索。

现在是最后一个注意:未定义的变量:C:''wamp''www''forums''index.php 第 65 行中的行在第 65 行:

 $sql1 = "SELECT * FROM `forum_cats` WHERE `admin` < ".$row['admin']."+1";

我觉得在我知道如何修复这些错误之后,我将能够修复大多数未定义的索引错误。如果有人能带领我走向正确的方向,我会义不容辞。

您应该检查 isset 的 $_GET['page'],如果没有找到或<1 将其声明为 1

 $page = (!isset($_GET['page']) || $_GET['page'] < 0) ? "1" : $_GET['page'];

关于你的第二个错误,你在作用域admin中调用的变量中一定有错误。检查选择此列的查询

未定义的索引表示您尝试访问的数组元素不存在。例如,对于 $_GET['page'] 错误,它很容易被发现,因为如果您在 $_GET 数组中得到一个未定义的索引"page",您可以立即查看 URL 并查看页面是否丢失。与$row相同,显然您的$row数组中没有带有键"admin"的元素。在大多数情况下,如果您遇到未定义的索引错误,您会做错事情,因为您应该知道数组键。祝你好运!

$page = (!isset($_GET['page']) || $_GET['page'] < 0) ? "1" : $_GET['page'];

在第二个示例中,您应该找到此行的来源,或者应将其替换为某个默认值:

$adminRow = isset($row['admin']) ? $row['admin'] : $defaultValue;
$sql1 = "SELECT * FROM `forum_cats` WHERE `admin` < ".$adminRow."+1";