做了一个图片验证码却不知该如何刷新,有好的见意就请在我下面的代码做下补充,越简单越好,测试通过满意了就给分:
<?php
session_start();
header("content-type:image/png");     //设置创建图像的格式
$image_width=70;                      //设置图像宽度
$image_height=18;                     //设置图像高度
srand(microtime()*100000);            //设置随机数的种子
for($i=0;$i<4;$i++){                  //循环输出一个4位的随机数
   $new_number.=dechex(rand(0,15));
}
$_SESSION[check_checks]=$new_number;   //将获取的随机数验证码写入到SESSION变量中     $num_image=imagecreate($image_width,$image_height);  //创建一个画布
imagecolorallocate($num_image,000,255,255);       //设置画布的颜色
for($i=0;$i<strlen($_SESSION[check_checks]);$i++){  //循环读取SESSION变量中的验证码
   $font=mt_rand(3,5);                             //设置随机的字体
   $x=mt_rand(1,8)+$image_width*$i/4;               //设置随机字符所在位置的X坐标
   $y=mt_rand(1,$image_height/4);                   //设置随机字符所在位置的Y坐标
   $color=imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));    //设置字符的颜色
   imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color);      //水平输出字符
}
imagepng($num_image);       //生成PNG格式的图像
imagedestroy($num_image);   //释放图像资源
?>

解决方案 »

  1. <img src="验证码文件" onclick="this.src='验证码文件?t='+Math.random()+'';" title="点击换一个"  >
      

  2. 对啊我就是要加下看不清换一个之类的 <a>代码,这个“image.php” //验证码图片生成脚本
      

  3. 经测试,没有问题
    session_start();
    header("content-type:image/png"); //设置创建图像的格式
    $image_width=70; //设置图像宽度
    $image_height=18; //设置图像高度
    srand(microtime()*100000); //设置随机数的种子
    $new_number='';
    for($i=0;$i<4;$i++){ //循环输出一个4位的随机数
      $new_number.=dechex(rand(0,15));
    }
    $_SESSION['check_checks']=$new_number; //将获取的随机数验证码写入到SESSION变量中   $num_image=imagecreate($image_width,$image_height); //创建一个画布
    imagecolorallocate($num_image,000,255,255); //设置画布的颜色
    for($i=0;$i<strlen($_SESSION['check_checks']);$i++){ //循环读取SESSION变量中的验证码
      $font=mt_rand(3,5); //设置随机的字体
      $x=mt_rand(1,8)+$image_width*$i/4; //设置随机字符所在位置的X坐标
      $y=mt_rand(1,$image_height/4); //设置随机字符所在位置的Y坐标
      $color=imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)); //设置字符的颜色
      imagestring($num_image,$font,$x,$y,$_SESSION['check_checks'][$i],$color);  //水平输出字符
    }
    imagepng($num_image); //生成PNG格式的图像
    imagedestroy($num_image); //释放图像资源
      

  4. 那是js改变了img的src值,,加个随机参数,防缓存就好了
      

  5. 如果要看不清换一个 用上面的onclick 是对的
      

  6.  <img src="image.php" onclick="this.src='image.php?t='+Math.random()+'';" title="点击换一个" >
    测试是通过了,可没有直观文字提示,需移动鼠标到上面才知道
    ps:
    onclick="this.src='image.php?t='+Math.random()+''    // ?t='' t 参数是指时间吗?
      

  7. 直观显示 你就要自己要<img>后面加段文字说明了
    随机数 防止有缓存
      

  8. 其实在旁边加下文字说明也可以接受的,但“疯一样的男子”说的那是js改变了img的src值,,加个随机参数,防缓存就好了,看来有缓存问题不是吗
      

类似问题 »