1. 程式人生 > 其它 >php圖形驗證碼

php圖形驗證碼

製作驗證碼圖片

public function makeCode()
    {
        $string = "abcdefghijklmnopqrstuvwxyz0123456789";
        $str = "";
        for($i=0;$i<4;$i++){ // 個數
            $pos = rand(0,35);
            $str .= $string{$pos};
        }
        Session::put('img_number',$str);
        $img_handle = Imagecreate(80, 40);  //
圖片大小80X20 $back_color = ImageColorAllocate($img_handle, 255, 255, 255); // 背景顏色(白色) $txt_color = ImageColorAllocate($img_handle, 0,0, 0); //文字顏色(黑色) // 加入干擾線 for($i=0;$i<3;$i++) { $line = ImageColorAllocate($img_handle,rand(0,255),rand(0,255),rand(0,255)); Imageline(
$img_handle, rand(0,15), rand(0,15), rand(100,150),rand(10,50), $line); } Imagefill($img_handle, 0, 0, $back_color); // 填充圖片背景色 ImageString($img_handle, 38, 30, 10, $str, $txt_color); // 水平填充一行字串 ob_clean(); // ob_clean()清空輸出快取區 header("Content-type: image/png"); // 生成驗證碼圖片 Imagepng($img_handle
); // 顯示圖片 }

html頁面呼叫

<div  class="inline " >
     <label>驗證碼:</label>
     <input class="control" type="text" name="makeCode" id="makeCode"  >
     <img src="/contractor/makeCode" id="codeImg" title="點選圖片重新整理" onclick="reCode()" style="width: 80px;" >
</div>

驗證碼重新整理,使用onclick事件

// 點選重新整理驗證碼
function reCode() {
    document.getElementById("codeImg").src="/contractor/makeCode?"+Math.random();
}

後臺驗證通過

// 驗證碼圖片驗證
            if ($request->input(['makeCode'])==Session::get('img_number'))
            {return [
                    'code' => 200
                ];
            }else {
                return [
                    'code' => 0,
                    'msg' => '驗證碼有誤'
                ];
            }