未定义的索引:在迷你日志中发布

时间:2012-09-11 20:45:32

标签: php

  

可能重复:
  PHP: “Notice: Undefined variable” and “Notice: Undefined index”

我已经四处寻找,无法解决这个问题。

$post   = (string) mysql_real_escape_string($_GET['post']);<br>
$page   = (int) mysql_real_escape_string(intval($_GET['page']));

我不明白错误undefined index:post的含义。我收到了$post$page行的错误。

2 个答案:

答案 0 :(得分:1)

仅当您的网址包含查询字符串时,才会填充$_GET variable(通常表示表单是使用GET方法提交的)。
因此,您必须首先检查$_GET是否包含值,然后使用这些值:

if(isset($_GET['post']) && isset($_GET['page'))
{
    $post   = mysqli_real_escape_string($_GET['post']);
    $page   = intval($_GET['page']);
}

在第一行代码中转换为string是无用的:mysqli_real_escape_string无论如何都会返回一个字符串。
在第二行代码中:

  • 使用mysql_real_escape_string,因为您使用的是intval:整数值不需要任何额外的转义
  • 投射到int是没用的,这已经使用intval
  • 完成了

重要提示:

由于所有mysql_ *函数都已弃用,并且将在未来的PHP版本中删除,因此您应该使用MySQLi or PDO(我在代码示例中使用了MySQLi)。

答案 1 :(得分:0)

此错误意味着警告告诉您的确切内容。

$ _ GET是作为HTTP GET参数传入的项目数组。

$_GET['page']$_GET['post']正在为您提供未定义的索引警告,因为关联数组中没有关键字&#39; post&#39;或者&#39;页面&#39;。

找出正在发生的事情的一种方法是使用var_dump()整个$ _GET数组来查看其中的内容。

var_dump($_GET)