我們讓用戶從單個文本輸入中搜索數據庫,並且在篩選某些用戶提供的字符串時遇到困難。驗證用戶輸入或
例如,如果用戶提交:
��������� lcd SONY
(注意的?)我需要取消搜索。
我包括編碼包裹上面的字符串的版本中的Base64,以便其輕鬆運行:
print(base64_decode("1MfLxc/RwdPHIGxjZCBTT05Z"));
我以前忽略了這種投入,但現在(我不知道爲什麼)剛剛意識到MySQL數據庫查詢幾乎是永遠執行,所以這現在是高度優先。
另一個例子強調,我們使用的是UTF-8和mb_detect_encoding是沒有幫助很大:
print(base64_decode("zqDOm8+Fzr3PhM63z4HOuc6/IM+Bzr/Phc+HzyU="));
ΠΛυντηριο ρουχ�%
所以:
- 我可以檢測/如何過濾這些投入?
- 該輸入是如何產生的?
拒絕這些輸入是錯誤的。您需要首先了解他們爲什麼會對性能產生負面影響。 – SLaks 2010-04-12 15:49:04
這是第一道防線。我現在被卡住了,所以我現在要調查數據庫性能問題,直到我有一個好主意。 – zaf 2010-04-12 15:52:14
你是說用戶實際上是手動輸入替換字符嗎? http://www.fileformat.info/info/unicode/char/FFFD/index.htm – 2010-04-12 16:15:43