| 本文介紹一個php實現的仿QQ中驗證碼的例子,QQ註冊或登入時的驗證碼,大家都見過吧,本文給出的代碼,也可以實現那樣的驗證碼哦。有需要的朋友,參考下吧。 代碼如下: 5)) { $_SESSION['dd_ckstr'] = strtolower($rndstring); $_SESSION['dd_ckstr_last'] = $ntime; } $rndstring = $_SESSION['dd_ckstr']; $rndcodelen = strlen($rndstring); //建立圖片,並設定背景色 $im = imagecreate(46,20); ImageColorAllocate($im, 240,243,248); //幹擾線 $lineColor1 = ImageColorAllocate($im, mt_rand(174,218),mt_rand(190,225),mt_rand(217,237)); for($j=1;$j<=2;$j=$j+3) { imageline($im,0,$j+mt_rand(1,15),48,$j+mt_rand(1,15),$lineColor1); } //輸出文字 $fontColor = ImageColorAllocate($im, mt_rand(0,150),mt_rand(0,150),mt_rand(0,150)); for($i=0;$i<$rndcodelen;$i++) { $bc = mt_rand(0,1); $rndstring[$i] = strtoupper($rndstring[$i]); imagestring($im,mt_rand(3,5),$i*$img_height/4+mt_rand(1,5),mt_rand(1,$img_width/2), $rndstring[$i], $fontColor); } header("Pragma:no-cache"r"n"); header("Cache-Control:no-cache"r"n"); header("Expires:0"r"n"); //輸出特定類型的圖片格式,優先順序為 gif -> jpg ->png if(function_exists("imagepng")) { header("content-type:image/png"r"n"); imagepng($im); } else { header("content-type:image/jpeg"r"n"); imagejpeg($im); } ImageDestroy($im); exit();}else{ //不支援GD,只輸出字母 ABCD $_SESSION['dd_ckstr'] = "abcd"; $_SESSION['dd_ckstr_last'] = ''; header("content-type:image/png"r"n"); header("Pragma:no-cache"r"n"); header("Cache-Control:no-cache"r"n"); header("Expires:0"r"n"); $fp = fopen("data/vdcode.jpg","r"); echo fread($fp,filesize("data/vdcode.jpg")); fclose($fp); exit();}?> |