为了账号安全,请及时绑定邮箱和手机立即绑定

PHP写的登录模块里无法检验中文用户名

PHP写的登录模块里无法检验中文用户名

PHP
牛魔王的故事 2019-03-07 02:04:11
代码如下 if ($row = mysqli_fetch_array($result)) { $_SESSION['usr_id'] = $row['id']; $_SESSION['usr_name'] = $row['name']; $_SESSION['usr_password']=$row['password']; if($_SESSION['usr_name'] == "普通用户"){ header("Location: index.html"); } else header("Location: index.php"); } else { $errormsg = "邮箱或密码不正确"; } “普通用户”是mysql数据库里的一个用户名,在 if($_SESSION['usr_name'] == "普通用户") 这里 换成数据库里存在的某个英文用户名就可以执行成功,不然的话一直提示密码错误。 改了PHP的输出编码格式 header("Content-type: text/html; charset=utf-8");还是不行,mysql里username字段都是utf-8格式。 如同采纳答案所说,在连接数据库之后加上 mysqli_query($con,'set names utf8'); 即可。 谢谢各位。
查看完整描述

7 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

用户类型 在数据库里面不建议用中文 1普通用户 2管理员 这样表示

你的代码链接数据库之后要设置charset

查看完整回答
反对 回复 2019-03-18
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

这个跟输出编码没什么关系,你直接看$row['name'],是不是'普通用户',还有session是不是写成功了

查看完整回答
反对 回复 2019-03-18
?
手掌心

TA贡献1942条经验 获得超3个赞

1.不建議使用中文
2.使用trim()函數清楚$_SESSION['usr_name']內容是否存在留空情況

查看完整回答
反对 回复 2019-03-18
?
白板的微信

TA贡献1883条经验 获得超3个赞

usr_name打印出来看一下不就知道了

查看完整回答
反对 回复 2019-03-18
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

最好代码中不要定义中文,用数字表示。

查看完整回答
反对 回复 2019-03-18
?
互换的青春

TA贡献1797条经验 获得超6个赞

可以看一下是不是数据库连接的 charset 设置问题。

ps:用户的英文是 user 不是 usr,改了吧,别让后人骂你。

查看完整回答
反对 回复 2019-03-18
?
森栏

TA贡献1810条经验 获得超5个赞

确保php文件的编码和连接数据库读出的字符编码一致,比如都是utf8

查看完整回答
反对 回复 2019-03-18
  • 7 回答
  • 0 关注
  • 566 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信