可能重复:
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
行的错误。
答案 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)