我正在寻找一个将这个结合起来的功能:
mysql_real_escape_string(htmlentities(trim($_POST[''])));
进入这个:
secFunction($_POST['']);
为了简化事情。虽然不太确定如何写它。建议? :)
答案 0 :(得分:1)
你的意思是这样吗?
function secFunction($string) {
return mysql_real_escape_string(htmlentities(trim($string)));
}
$clean_string = secFunction($_POST['something']);
答案 1 :(得分:0)
这是我喜欢用于转义SQL字符串的函数。
function escape($data) {
$magicQuotes = get_magic_quotes_gpc();
if(function_exists('mysql_real_escape_string')) {
if($magicQuotes) {
$data = stripslashes($data);
}
$data = mysql_real_escape_string($data);
}
else {
if(!$magicQuotes) {
$data = addslashes($data);
}
}
return $data;
}
然后您可以像这样使用它:
$myString = isset($_POST['key']) ? escape($_POST['key']) : '';
如果你愿意,你可以添加htmlentities和trim,但我更喜欢单独这样做。
答案 2 :(得分:-1)
使用mysql_real_escape_string转义不会阻止注入。
和htmlentities与注射完全没有关系。
并且这些功能永远不会被合并。
你必须使用某种占位符来防止注入,这样的占位符必须是本机预处理语句或用数据替换,这些数据被转义为和引用,因为转义只适用于数据用引号括起来。