firefox php 验证码图片 多次请求问题 待解决

来源:互联网 发布:linux运维最佳实践 编辑:程序博客网 时间:2024/05/16 06:11

  摘要:在使用GD库做验证码的过程中,使用firefox调试,发现浏览器显示的验证码图片与firebug响应的验证码图片不同,firebug响应的验证码图片的字符串与session里面存的字符串相同,网上查找以后,找到思路,有可能是firefox的浏览器显示的请求与firebug的请求不是一个请求,故做下面的验证,记录这个问题。

  为了更针对这个问题做出验证,将原代码进行了精简和修改,更适合于验证这个问题。好,先上代码。

<?phpheader("content-type:image/png");session_start();if (isset($_SESSION['index'])) {    $_SESSION['index'] += 1;}else{    $_SESSION['index'] = 1;}$width = 80;$height = 20;$vCodeString = "";$vCodeString = "{$_SESSION['index']}";$_SESSION['vcode'] = $vCodeString;$image = imagecreate($width,$height);$background = imagecolorallocate($image,255,255,255);$fontcolor = imagecolorallocate($image, 0, 0, 0);imagestring($image, 5, 0, 0, $vCodeString, $fontcolor);imagepng($image);imagedestroy($image);?>

  代码很简单,这里就不做解释了。
下面把在firefox上(没有开启firebug)首次访问和刷新后的结果贴上:

首次访问:首次访问
在验证码图片上右键另存为,保存到本地是:保存到本地
然后SESSION 里面存的也是2

刷新后:刷新后

  下面把在firefox上(开启firebug)首次访问和刷新后的结果是(不贴图片了,太麻烦):
首次访问:1
在图片上右键另存为:3
firebug里面响应的为:3
SESSION里面是:3

总结:在没有开启firebug插件的时候,firefox页面请求一次(是两次中的第一次),服务器端的这个PHP文件实际是被请求了两次。在开启firebug插件的时候,firefox页面请求第一次,不知道哪里请求了第二次,firebug请求了第三次。

在chrome浏览器下均是访问了一次,页面显示的图片上的字符是SESSION中存储的字符,运行是正常的

最后的总结:网上查说是出现这种问题可能是firefox的一个bug,我想应该不是这么简单的问题把,记录在此,希望以后能够查清楚这是什么原因!!!

第二天测试在html文档中使用img标签的src属性指向上面的php文件,刷新是没问题的。

0 0
原创粉丝点击