ホームページ  >  記事  >  バックエンド開発  >  キャッシュ ソリューションの読み取りを回避するために検証コードに時刻文字列を追加する方法

キャッシュ ソリューションの読み取りを回避するために検証コードに時刻文字列を追加する方法

WBOY
WBOYオリジナル
2016-06-13 13:43:45792ブラウズ

キャッシュの読み取りを避けるために検証コードに時間文字列を追加するにはどこにすればよいですか
クラスでパッケージ化した検証画像関数ですが、キャッシュの読み取りを避けるために時間文字列をどこに追加すればよいかわかりません。教えてください。いくつかのアドバイス

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?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);
    }
}
?>




-----解決策------ --
ネットでいろいろ検索してみてください。