PHP驗證碼

下面是根據一些大神寫的驗證碼,然後按自己愛好修改出來的,有什麼缺點請多多指教。

<?php
    session_start();
    $session="";
    //文件頭...
    header("Content-type: p_w_picpath/png");
    //創建真彩色白紙
    $im = @p_w_picpathcreatetruecolor(50, 20) or die("建立圖像失敗");
    //獲取背景顏色
    $background_color = p_w_picpathcolorallocate($im, 255, 255, 255);
    //填充背景顏色(這個東西類似油桶)
    p_w_picpathfill($im,0,0,$background_color);
    //獲取邊框顏色
    $border_color = p_w_picpathcolorallocate($im,200,200,200);
    //畫矩形,邊框顏色200,200,200
    p_w_picpathrectangle($im,0,0,49,19,$border_color);
    //逐行炫耀背景,全屏用1或0
    for($i=2;$i<18;$i++){
        //獲取隨機淡色        
        $line_color = p_w_picpathcolorallocate($im,rand(200,255),rand(200,255),rand(200,255));
        //畫線
        p_w_picpathline($im,2,$i,47,$i,$line_color);
    }
    //設置字體大小
    $font_size=12;
    //隨機文字方法---------》Qzm
    function qwe(){
        //設置印上去的文字---------》Qzm
        $SteQ="ABCDEFGHIJKLMNOPQRSTUVWXYZ".
              "abcdefghijklmnopqrstuvwxyz".
              "01234567891234567890123456";
        $randnum=rand(0,strlen($SteQ));
        return $SteQ[$randnum];
    }
    //寫入隨機字串
    for($i=0;$i<4;$i++){
        //獲得文字
        $qwe=qwe();
        $session.=$qwe;
        //獲取隨機較深顏色
        $text_color = p_w_picpathcolorallocate($im,rand(50,180),rand(50,180),rand(50,180));
        //畫文字
        p_w_picpathchar($im,$font_size,12*$i+2,rand(0,5),$qwe,$text_color);
    }
    //判斷源
    /*if(isset($_SERVER['HTTP_REFERER'])){
        if($_SERVER['HTTP_REFERER']!="源"){*/
    $_SESSION['cheak']=md5(strtolower($session));
    //顯示圖片
    p_w_picpathpng($im);
    /*  }
    }*/
    //銷燬圖片
    p_w_picpathdestroy($im);
?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章