验证用户输入或

zaf*_*zaf 6 php unicode validation filter detect

我们让用户从单个文本输入中搜索数据库,并且我在过滤一些用户提供的字符串时遇到了困难.

例如,如果用户提交:

????????? lcd SONY
Run Code Online (Sandbox Code Playgroud)

(注意?)我需要取消搜索.

我包括上面的字符串的base64编码版本,以便它运行:

print(base64_decode("1MfLxc/RwdPHIGxjZCBTT05Z"));
Run Code Online (Sandbox Code Playgroud)

我之前忽略了这些输入但是现在(我不知道为什么)只是意识到mysql数据库查询几乎永远执行所以现在这是高优先级.

另一个强调我们使用utf-8和mb_detect_encoding的例子没有多大帮助:

print(base64_decode("zqDOm8+Fzr3PhM63z4HOuc6/IM+Bzr/Phc+HzyU="));
????????? ?????%
Run Code Online (Sandbox Code Playgroud)

所以:

  • 如何检测/过滤这些输入?
  • 这个输入是如何生成的?

小智 1

你不应该得到这个,尽管如果你真的想过滤(我不推荐),请检查字母数字以及“-.;”等。

您可以使用其中一些功能来帮助您完成过滤过程。

http://www.php.net/manual/en/function.ctype-alnum.php