Discuz系统它内置的DB::和C::t这两个查询数据库的函数我都会了,但是这两个函数有添加不区分被查询字符大小写的参数吗?
比如别人注册时填的Abc数据里保存的也是Abc,登录填abc我用DB和ct都查不出来....
最好是直接调用它内置的DB::或C::t,还需要另外再写一遍mysql ip用户名密码和端口那种通用查询最好不用
4 个解决方案
#1
最简单的做法,把数据库所有用户名都转小写
然后登入时,把用户输入强制转为小写,这样用户输入大小写都可以了。
或者设置mysql不区分大小写
修改my.cnf
lower_case_table_names=1
重新启动数据库即可
然后登入时,把用户输入强制转为小写,这样用户输入大小写都可以了。
或者设置mysql不区分大小写
修改my.cnf
lower_case_table_names=1
重新启动数据库即可
#2
这样感觉不太好吧,别人注册的大写用户名登陆后就通通显示成小写字母了,降低了用户体验度啊,
修改了my.cnf那查询密码还要区分吗
#3
MySQL 的 文本 类型(varchar、char、text)都是不区分大小写的
#4
密码一般是md5(md5(原密码)+salt) 保存在数据库的,这样即使数据库被破解,都取不到用户密码,所以必须是区分大小写。
你程序还需要查密码?
你程序还需要查密码?
#1
最简单的做法,把数据库所有用户名都转小写
然后登入时,把用户输入强制转为小写,这样用户输入大小写都可以了。
或者设置mysql不区分大小写
修改my.cnf
lower_case_table_names=1
重新启动数据库即可
然后登入时,把用户输入强制转为小写,这样用户输入大小写都可以了。
或者设置mysql不区分大小写
修改my.cnf
lower_case_table_names=1
重新启动数据库即可
#2
这样感觉不太好吧,别人注册的大写用户名登陆后就通通显示成小写字母了,降低了用户体验度啊,
修改了my.cnf那查询密码还要区分吗
#3
MySQL 的 文本 类型(varchar、char、text)都是不区分大小写的
#4
密码一般是md5(md5(原密码)+salt) 保存在数据库的,这样即使数据库被破解,都取不到用户密码,所以必须是区分大小写。
你程序还需要查密码?
你程序还需要查密码?