我有一个包含 HTML 和文本混合的表单域。 我希望用户能够使用基本的 HTML 和标点符号。
目前我正在使用 mysql_real_escape_string 和 preg_replace 来清理数据并将其插入数据库。我的理解是 preg_replace 是去除任何不在允许字符白名单中的字符的最佳方法,并且 mysql_real_escape_string 可以防止 SQL 注入(inject)。
//How I collect and sanitise the data...
$var=mysql_real_escape_string(
preg_replace("/[^A-Za-z0-9-?!$#@()\"'.:;\\@,_ =\/<> ]/",'',$_POST['var'])
);
但是,当使用 hash 字符时,它会不断中断。
我的问题是:
1) 有没有更有效的方法来做到这一点?
2) 如果这是最好的方法,我做错了什么?
我需要允许的字符是:所有字母数字字符和:
<强>? ! @#$% & ( ) - 。 , : ; ' "< >/+ =
谢谢!
最佳答案
为什么不只使用 strip_tags() 并将其限制为您需要的标签?
strip_tags ($str,"<br>")
然后您可以进行其他不太具有侵入性的“卫生”。
关于php - 如何处理混合使用 HTML 和标点符号的用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230072/