我有一個表單域,其中包含HTML和文本的混合。 我希望用戶能夠使用基本的HTML和標點符號。如何處理混合了HTML和標點符號的用戶輸入?
目前我使用mysql_real_escape_string和的preg_replace消毒的數據,並將其插入到數據庫中。我的理解是,preg_replace是去除不在允許字符的白名單中的任何字符的最佳方法,並且mysql_real_escape_string可以防止SQL注入。
//How I collect and sanitise the data...
$var=mysql_real_escape_string(
preg_replace("/[^A-Za-z0-9-?!$#@()\"'.:;\\@,_ =\/<> ]/",'',$_POST['var'])
);
但是,使用散列字符時它會一直中斷。
我的問題是:
1)是否有更有效的方式來做到這一點?
2)如果這是最好的方法,我做錯了什麼?
,我需要允許的字符是:所有字母數字字符和:
? ! @#$%&() - 。 ,:; '「<>/+ =
謝謝!
謝謝!如果它不可靠,我猶豫要使用strip_tags。 – Matt 2010-02-09 16:43:40