84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
通过php生成验证码,然后用img标签输出。
请问,为什么有session_start()的话,onclick事件这样写,点击就会有刷新验证码的效果?(会出现新的验证码)没有session会话,点击无效。
html代码
<img src="verifyCode.php" onclick="this.src='verifyCode.php'"/>
php
//省略验证码生成代码... imagepng($image);//输出图片 session_start();//开始会话
认证0级讲师
onclick="this.src='verifyCode.php?id='+Math_random()"/>这样应该就行了。给图片加个随机数,每次生成的都不一样 就能刷新了
这段代码session_start()是不是在图片制作之前?如果是之前的话,一般制作画布的时候需要注入验证信息到$_SESSION,可能因为没有开启session导致注入失败,终止制作验证码图片。
利用session来校验图形验证码,一般的原理是先在session里面存储当前的验证码a,再通过a来生成图形验证码,并返回给客户端。 客户端通过输入验证码a给服务器,服务器再根据当前session存储的数据进行校验。
如果你用的是这种方法,又没有启用session,就没办法在session里对验证码a进行存储替换,当然会出错。(备注:图片的输出和session的启用无关)
onclick="this.src='verifyCode.php?id='+Math_random()"/>
这样应该就行了。给图片加个随机数,每次生成的都不一样 就能刷新了
这段代码session_start()是不是在图片制作之前?
如果是之前的话,一般制作画布的时候需要注入验证信息到$_SESSION,可能因为没有开启session导致注入失败,终止制作验证码图片。
利用session来校验图形验证码,一般的原理是先在session里面存储当前的验证码a,再通过a来生成图形验证码,并返回给客户端。 客户端通过输入验证码a给服务器,服务器再根据当前session存储的数据进行校验。
如果你用的是这种方法,又没有启用session,就没办法在session里对验证码a进行存储替换,当然会出错。
(备注:图片的输出和session的启用无关)