1

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

第一个是这种类型的错误 注意: Undefined index: page in C:\wamp\www\forums\includes\topic.php on line 4 and on line 4:

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

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

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

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

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

4

3 回答 3

1

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

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

关于您的第二个错误,您在范围内调用的变量中一定有错误admin。检查选择此列的查询

于 2013-06-09T23:43:34.573 回答
1

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

于 2013-06-09T23:47:09.933 回答
0
$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";
于 2013-06-09T23:49:28.993 回答