最安全的方式验证$ _GET,我应该使用它PHP

时间:2017-09-22 10:25:15

标签: php mysql validation

目前我在我的网站上使用了很多$ _GET参数,如下所示: http://example.com/user.php?id=1

CMFCEditBrowseCtrl m_FolderPathCtrl;

之后我正在使用mysql SELECT检查mysql是否为id为1的用户。

它有意义吗? 或者我应该使用更好的东西?

3 个答案:

答案 0 :(得分:1)

需要做很多工作才能确保,$_GET['id']实际上是一个数字......在这种情况下你可以写一下

$id = (int)$_GET['id'];

尽管如此,您应该使用预准备语句将参数传递给sql语句。如果您使用mysqli,则可以查看php manual以获取一些好的示例。

答案 1 :(得分:0)

您要找的是import pandas as pd path = r"raccoons.csv" df = pd.read_csv(path, sep=":",dtype=None) print(df) http://php.net/manual/en/function.filter-input.php

filter_input()

答案 2 :(得分:0)

在查询中使用用户提交的数据的正确方法是使用参数化查询。我通常只使用PDO,但这应该是一个使用mysqli的工作解决方案:

$mysqli->prepare("SELECT * FROM users WHERE id = ?");
$mysqli->bind_param("i", (int)$_GET['id']);

您只能将用户输入转换为带(int)$_GET['id']的整数(读取here,了解任意字符串如何转换为整数)。 更重要的部分是使用参数化查询,这可以确保您的代码免受SQL注入攻击。