下面是根據一些大神寫的驗證碼,然後按自己愛好修改出來的,有什麼缺點請多多指教。
<?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); ?>