1
我使用的是分页的留言mysqli_real_escape_string,我想保护的“页”与真正的逃生绳 这是我现在有:
$page = (int)(!isset($_GET["page"]) ? 1 : $_GET["page"]);
如果尝试这样做,但paginations似乎不起作用anymmore:
$page = (int)(!isset($_GET["page"]) ? 1 : mysqli_real_escape_string($_GET["page"]));
我应该怎么做,使这项工作?
那么如果你[阅读手册](http://php.net/manual/en/mysqli.real-escape-string.php)它说,当程序调用函数的参数是:'mysqli_real_escape_string(mysqli $链接,字符串$ escapestr)'。所以你需要传递mysqli连接作为第一个参数。 – 2015-04-02 23:31:58
如果'$ _GET ['page']'是一个数字,你在技术上不需要转义它。如果你将它转换为int(通过执行'(int)$ _ GET ['page']'),那么没有恶意注入的风险;它将始终转换为数字。 – Atli 2015-04-02 23:34:05
此外,如果您使用MySQLi开始,您确实应该使用准备好的语句,而不是老派转义。 http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – Atli 2015-04-02 23:35:22