[英]Validation of user input or ���������
我們讓用戶從單個文本輸入中搜索數據庫,並且我在過濾一些用戶提供的字符串時遇到了困難。
例如,如果用戶提交:
��������� lcd SONY
(注意?)我需要取消搜索。
我包括上面的字符串的base64編碼版本,以便它運行:
print(base64_decode("1MfLxc/RwdPHIGxjZCBTT05Z"));
我之前忽略了這些輸入但是現在(我不知道為什么)只是意識到mysql數據庫查詢幾乎永遠執行所以現在這是高優先級。
另一個強調我們使用utf-8和mb_detect_encoding的例子沒有多大幫助:
print(base64_decode("zqDOm8+Fzr3PhM63z4HOuc6/IM+Bzr/Phc+HzyU="));
ΠΛυντηριο ρουχ�%
所以:
您不應該這樣做,雖然如果您真的想要過濾(我不推薦),請檢查字母數字以及“ - 。;”等。
您可以使用其中一些功能來幫助您完成過濾過程。
如果在創建與mysql的連接后執行這些查詢,它應該處理utf-8輸入並且結果很好而不會吐出?
mysql_query("SET character_set_client=utf8", $mysqlConn);
mysql_query("SET character_set_connection=utf8", $mysqlConn);
mysql_query("SET character_set_results=utf8", $mysqlConn);
(假設數據庫設置為utf-8,你不介意不過濾它們,如果它們沒有變成?)
(也假設你使用的是mysql,其他dbms可能有類似的功能)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.