thinkphp3.2版本,输入验证码发现输入的验证码md5加密后跟SESSION保存的不一致
$username=$_POST['username'];$password=$_POST['password'];$code=$_POST['code'];dump(m...
$username=$_POST['username'];
$password=$_POST['password'];
$code=$_POST['code'];
dump(md5($code));
dump($code);
dump($_SESSION);
exit();
然后我打出来情况如下
string 'a204591fda97bc34b34b294195402125' (length=32) // md5($code)
string '87415' (length=5) //$code
array (size=1) //dump($_SESSION);
'd2d977c58444271d9c780187e93f80e5' =>
array (size=2)
'verify_code' => string 'c1a21fb2f30b2c5f0619a239ae3e1e4a' (length=32)
'verify_time' => int 1489109967 展开
$password=$_POST['password'];
$code=$_POST['code'];
dump(md5($code));
dump($code);
dump($_SESSION);
exit();
然后我打出来情况如下
string 'a204591fda97bc34b34b294195402125' (length=32) // md5($code)
string '87415' (length=5) //$code
array (size=1) //dump($_SESSION);
'd2d977c58444271d9c780187e93f80e5' =>
array (size=2)
'verify_code' => string 'c1a21fb2f30b2c5f0619a239ae3e1e4a' (length=32)
'verify_time' => int 1489109967 展开
2个回答
展开全部
你的验证码是加密后的数字,而session是随机生成的,两个就不可能是一样的
追问
tp随机生成验证码然后把验证码存在SESSION里面,然后用户登录的时候不是要比对验证码,先前,我用$Verify->seKey = md5;把密钥也设成md5了,他们还是不一样,
为什么在tp 3.1版本是dump(md5($code));和dump($_SESSION);是一样的
追答
3.2里面不是有验证码校验,你直接用那个就可以啦
验证码检测
可以用Think\Verify类的check方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:
// 检测输入的验证码是否正确,$code为用户输入的验证码字符串function check_verify($code, $id = ''){ $verify = new \Think\Verify(); return $verify->check($code, $id);}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询