javascript - 通过session会话,php生成的验证码点击就可以刷新,为什么?
PHP中文网
PHP中文网 2017-05-16 12:59:41
0
3
421

通过php生成验证码,然后用img标签输出。

请问,为什么有session_start()的话,onclick事件这样写,点击就会有刷新验证码的效果?(会出现新的验证码)
没有session会话,点击无效。

html代码

<img src="verifyCode.php" onclick="this.src='verifyCode.php'"/>

php

//省略验证码生成代码...

imagepng($image);//输出图片

session_start();//开始会话
PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
某草草

onclick="this.src='verifyCode.php?id='+Math_random()"/>
这样应该就行了。给图片加个随机数,每次生成的都不一样 就能刷新了

曾经蜡笔没有小新

这段代码session_start()是不是在图片制作之前?
如果是之前的话,一般制作画布的时候需要注入验证信息到$_SESSION,可能因为没有开启session导致注入失败,终止制作验证码图片。

给我你的怀抱

利用session来校验图形验证码,一般的原理是先在session里面存储当前的验证码a,再通过a来生成图形验证码,并返回给客户端。 客户端通过输入验证码a给服务器,服务器再根据当前session存储的数据进行校验。

如果你用的是这种方法,又没有启用session,就没办法在session里对验证码a进行存储替换,当然会出错。
(备注:图片的输出和session的启用无关)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!