php 带有“或”的用户名-在移动的上无效

rbpvctlc  于 2023-02-18  发布在  PHP
关注(0)|答案(2)|浏览(156)

我这里有一小段代码,它是php登录表单的一部分,它接受用户的名字、姓氏和密码。

$first_name  = SANITIZE(trim(strtolower(@$_POST["f_name"])));    
$last_name  = SANITIZE(trim(strtolower(@$_POST["l_name"])));

这些在桌面上对任何类型的名字都能很好地工作,但在移动的上似乎有一个问题,名字中有一个'或一个-。所以例如,沙奎尔·奥尼尔可以用他的名字和姓氏在桌面上登录得很好。但如果他尝试用手机登录,他名字里的撇号会出现一些问题,显示用户不存在。你知道为什么会出现这种情况吗?已经在iPhone和android手机上进行了测试,结果相同。

dgiusagp

dgiusagp1#

试着用htmlspecialchars()测试一下,有时在表单中输入数据或从数据库中显示数据时,特殊字符并不好用。

1wnzp6jl

1wnzp6jl2#

尝试获取字符代码并与数据库进行比较。
虽然ASCII只有一个单引号代码(不包括反引号),但UTF字符集有多个单引号代码。“-”也是如此。带有“智能”键盘的移动的设备可能会替换他们认为语法更正确的字母。
以前我写这是错误的:
如果是这种情况,您可以通过指定您的Web服务器(至少对于登录页面)只需要ASCII头文件来解决此问题:
接受:文本/html;字符集=US-ASCII,文本/纯文本;字符集=US-ASCII

相关问题