小随笔——20171128
♠ ♥ ♦ ♣ 该文章仅为平时的笔记,非商用,如有侵权请联系博主删除 ♣ ♦ ♥ ♠
目录:
♠ __PHP字符串看上去一样,为什么比较的时候不一样;
♥ __MD5加密了字符串,无法与其他字符串比较的问题;
♣ __PHP转跳到html页面;
环境:win7
相关问题笔记:
♠__PHP字符串看上去一样,为什么比较的时候不一样:
在用户登录界面中,用户输入一个密码,需要和数据库中用户表的密码进行比较。
用户输入的密码:$password
通过数据库查询得到的值:$result
通过echo $password;
和echo $result;
两者显示的结果都是一样,但是strcmp($result,$password)
的值不为0,即不相等。
纠结了许久,发现在数据库中password的数据类型为VARCHAR(20),于是,猜测$password
后面还有n个空值,导致比较结果不一样。因此尝试使用$result = rtrim($result);
来去掉右侧多余的空值,结果strcmp($result,$password)
的值为0,成功证明了相等!
这是偶然发现的解法,不知是否解决了本质问题,欢迎各位留言指教
♥ __MD5加密了字符串,无法与其他字符串比较的问题:
假设用户名为“01”,可以先查询该用户的密码$password
,然后再对$password
进行MD5加密进行比较。
一般来说,用户注册时就会将密码进行MD5加密,并存储在数据库中,这样,管理员也无法知道密码,安全性大大提高。
对POST过来的数据进行如下获取:
$password = MD5($_POST['password']);
MD5广泛用于操作系统的登陆认证上,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。
♣ __PHP转跳到html页面:
登陆成功,转跳页面
//登陆成功,转跳进入界面
header("location:../html/firstpage.html");
仅作为日常笔记使用,有点简单,大家有什么想法也可以交流哟~