可能重复:
PHP:"Notice:Undefined variable"answers"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
行都得到了这个错误。
$_GET变量只有在URL有查询字符串时才会填充(这通常意味着表单是用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或PDO(我在代码示例中使用了MySQLi)。
这个错误正是警告所告诉您的。
$_GET是作为HTTP GET参数传入的项的数组。
$_GET['page']
和$_GET['post']
向您提供未定义的索引警告,因为关联数组中没有关键字为"post"或"page"的项。
弄清楚发生了什么的一种方法是对整个$_GET数组进行var_dump(),看看其中有什么
var_dump($_GET)