这是我用类包装的一个验证图片功能  但是我不知道在哪加时间字符串才可以避免读缓存 还请高手指教下<?php
class ImageCode{
private $randcode; //随机字符
private $randcodelength; //随机字符长度
private $imgWidth; //随机字符宽度
private $imgHeight; //随机字符高度
private $line = 5; //干扰线
private $code = array("q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m",
"Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M",
"1","2","3","4","5","6","7","8","9","0");
private $codelength; //数组的长度 private $image; //图片
private $background; //背景
private $foreground; //前景 function __construct(){
$this->randcodelength = 5;
$this->imgWidth = 80;
$this->imgHeight = 20;
$this->codelength = count($this->code)-1; //获取数组长度当随机范围 $this->createrandcode();
$this->createimg();
$this->createString();
$this->drawline($this->line);
$this->ending(); }
function createrandcode(){
for($i=0;$i<$this->randcodelength;$i++){ //初始化验证码
$this->randcode .= $this->code[rand(0,$this->codelength)];
}
}
function createimg(){ //创建图片 前景 背景颜色
$this->image = imagecreatetruecolor($this->imgWidth,$this->imgHeight);
$this->background = imagecolorallocate($this->image,0,0,0);
$this->foreground = imagecolorallocate($this->image,255,255,255);
}
function createString(){ //创建字符串
imagestring($this->image,5,rand(5,35),0,$this->randcode,$this->foreground);
}
function drawline($some){
for($i=0;$i<$some;$i++){
imageline($this->image,rand(1,$this->imgWidth),rand(1,$this->imgHeight),rand(1,$this->imgWidth),rand(1,$this->imgHeight),$this->foreground);
}
}
function ending(){
ob_clean(); //抛弃缓存内容
header("Content-type: image/jpeg");
imagejpeg($this->image);
}
}
?>

解决方案 »

  1.   

    这是页面读的<?php
    include("ImageCode.php");
    ?>
    <img src="<?php new ImageCode()?>"/>
      

  2.   

    问下 我去JAVA 板块 和其他板块回答问题 也可以获得积分吧
    换句话说 积分是所有板块都共享的吧?
      

  3.   

    一般单击时就需要刷新。可以向url上加个时间戳或随机数。
      

  4.   

    网上搜一大把。
    <script>
    function RefreshCode(obj){
                obj.src = obj.src + "?code=" + Math.random();
    }
    </script>
     
    <img src="CheckCode.aspx" alt="验证码" title="看不清?点击换另一张" onclick="RefreshCode(this)" />
      

  5.   

    在img的src链接地址加个随机数的参数就可以避免读缓存