Discuz查询数据库用户名如何不区分大小写呢,有参数吗?

时间:2021-06-23 00:52:12
它的原版登录大小写都没有问题,我自定义了登录页面,别人输入用户名大小写和数据里注册时的不一样就直接查询不到了返回空,
Discuz系统它内置的DB::和C::t这两个查询数据库的函数我都会了,但是这两个函数有添加不区分被查询字符大小写的参数吗?

比如别人注册时填的Abc数据里保存的也是Abc,登录填abc我用DB和ct都查不出来....

最好是直接调用它内置的DB::或C::t,还需要另外再写一遍mysql ip用户名密码和端口那种通用查询最好不用

4 个解决方案

#1


最简单的做法,把数据库所有用户名都转小写
然后登入时,把用户输入强制转为小写,这样用户输入大小写都可以了。

或者设置mysql不区分大小写
修改my.cnf
lower_case_table_names=1
重新启动数据库即可

#2


引用 1 楼 fdipzone 的回复:
最简单的做法,把数据库所有用户名都转小写
然后登入时,把用户输入强制转为小写,这样用户输入大小写都可以了。

或者设置mysql不区分大小写
修改my.cnf
lower_case_table_names=1
重新启动数据库即可


这样感觉不太好吧,别人注册的大写用户名登陆后就通通显示成小写字母了,降低了用户体验度啊,
修改了my.cnf那查询密码还要区分吗

#3


MySQL 的 文本 类型(varchar、char、text)都是不区分大小写的 

#4


密码一般是md5(md5(原密码)+salt) 保存在数据库的,这样即使数据库被破解,都取不到用户密码,所以必须是区分大小写。
你程序还需要查密码?

#1


最简单的做法,把数据库所有用户名都转小写
然后登入时,把用户输入强制转为小写,这样用户输入大小写都可以了。

或者设置mysql不区分大小写
修改my.cnf
lower_case_table_names=1
重新启动数据库即可

#2


引用 1 楼 fdipzone 的回复:
最简单的做法,把数据库所有用户名都转小写
然后登入时,把用户输入强制转为小写,这样用户输入大小写都可以了。

或者设置mysql不区分大小写
修改my.cnf
lower_case_table_names=1
重新启动数据库即可


这样感觉不太好吧,别人注册的大写用户名登陆后就通通显示成小写字母了,降低了用户体验度啊,
修改了my.cnf那查询密码还要区分吗

#3


MySQL 的 文本 类型(varchar、char、text)都是不区分大小写的 

#4


密码一般是md5(md5(原密码)+salt) 保存在数据库的,这样即使数据库被破解,都取不到用户密码,所以必须是区分大小写。
你程序还需要查密码?