【发布时间】:2013-12-08 10:01:16
【问题描述】:
无法使用 PDO。
我在这里阅读了很多问题,这是我第一次尝试为我办公室以外的人做一些事情,所以我需要对数据输入进行清理,研究它发现了这个功能。
function clean_data($input){
$input = trim(htmlentities(strip_tags($input,",")));
if (get_magic_quotes_gpc())
$input = stripslashes($input);
$input = mysql_real_escape_string($input);
return $input;
}
示例:
$vartodb = clean_data($_POST['yourformfieldhere']);
这个功能可以清理数据吗?
【问题讨论】:
-
这种方法很可怕,会破坏和破坏数据。只需使用适当的清理方法在使用数据之前对其进行清理。例如。
mysql_real_escape_string()在运行mysql_query()之前。或htmlentities()在网页上输出任何内容之前。但是 PDO 或 mysqli 确实会有益 -
所以使用这段代码可以避免 sql 注入,
$sql = "INSERT INTO clientes VALUES (NULL,:iduser,:nombre,:cedula,:dir,:tel)"; $query = $db->prepare($sql); $query->execute(array( ':iduser'=>($_POST['id']), ':nombre'=>($_POST['nombre']), ':cedula'=>($_POST['cedula']), ':dir'=>($_POST['dir']), ':tel'=>($_POST['tel']), ))
标签: php mysql sanitization