php的验证码和session的code值不一致!

发布网友 发布时间:2022-04-06 06:39

我来回答

3个回答

懂视网 时间:2022-04-06 11:00

php中session验证码不同步的解决办法:

验证码生成页面:

for($i=0;$i<4;$i++){
$y = mt_rand(3,10);
$size = mt_rand(5,8);
$ran = dechex(rand(0,15));
imagestring($im,$size,(2+$i*15),$y,$ran,imagecolorallocate($im,rand(0,100),rand(0,150),rand(0,200)));
$yzm.=$ran;
}
$_SESSION['yzm']=$yzm;

登录页面:

<input type="text" value="">

红色代码为了检测是否能够正确获得图片中的验证码,但是在测试中,我发现我多次一举了。

因为每次刷新这个页面之后显示的都是上一次的内容。最后网上查阅了一番发现,session变量,设置之后是需要刷新页面才会生效的。

我们在登录页面是首次引入yzm.php页面。没有刷新页面。所以当前用$_SESSION是获取不到的,当我们刷新这个页面的时候,获取到的是上一次的session值,

为了测试猜想是否正确。登录页面设置一个表单提交路径。链接的页面为:

session_start();
 echo $_SESSION['yzm'];

结果符合。

相关学习推荐:PHP编程从入门到精通

热心网友 时间:2022-04-06 08:08

因为你做一个异步操作。 。
1验证码负载 - 显示图片 - 计入会议

2页面加载 - 阅读会议

这不是一个两个步骤的顺序,所以你只能得到通过刷新来的最后一次会议。
您可以参考 http://gqy2468.javaeye.com/blog/690941 这里的措辞。

热心网友 时间:2022-04-06 09:26

这个问题我也遇到过,其实就是一个逻辑错;
不信你可以看看,你打印出来的和你图片上面出来的,应该谁一前一后的关系

要么就是 第一次的图片值会在第二次打印出来;
要么就是 本次打印出来的值会在下一次图片出来;

注意逻辑可能错到的地方:SESSION和你的输出或记录不同步

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com