0
4

2 回答 2

1

仅当您的 URL 具有查询字符串(这通常意味着使用 GET 方法提交表单)时,才会填充$_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无论如何都会返回一个字符串。
在您的第二行代码中:

  • using mysql_real_escape_stringsince you are using intval: 整数值不需要任何额外的转义
  • 投射到int是没用的,这已经完成了intval

重要通知:

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

于 2012-09-11T21:41:41.293 回答
0

此错误正是警告告诉您的内容。

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

$_GET['page']$_GET['post']给你未定义的索引警告,因为关联数组中没有键为“post”或“page”的项目。

弄清楚发生了什么的一种方法是 var_dump() 整个 $_GET 数组以查看其中的内容。

var_dump($_GET)

于 2012-09-11T20:53:15.267 回答