程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 一款php生成驗證碼實現代碼

一款php生成驗證碼實現代碼

編輯:關於PHP編程

生成驗證碼代碼 一款php生成驗證碼實現代碼,把自定義了session的目錄,這樣就不是php.ini裡默認的session文件保存路徑了,如下面session_save_path,可重新定義目錄。

生成驗證碼代碼
一款php教程生成驗證碼實現代碼,把自定義了session的目錄,這樣就不是php.ini裡默認的session文件保存路徑了,如下面

session_save_path,可重新定義目錄。
*/
$sesssavepath = dirname(__file__)."/../data/sessions/";
if(is_writeable($sesssavepath) && is_readable($sesssavepath)){ session_save_path($sesssavepath); }
session_start();
$vstr = '';
for($i=0; $i<4; $i++) $vstr .= chr(mt_rand(65,90));
if(function_exists("imagecreate")){
 $ntime = time();
 if(empty($_session['verifycode_last']) || empty($_session['verifycode']) || ($ntime - $_session['verifycode_last'] > 5)){
  $_session['verifycode'] = strtolower($vstr);
  $_session['verifycode_last'] = $ntime;
 }
 $vstr = $_session['verifycode'];
 $vstrlen = strlen($vstr);
 $img = imagecreate(50,20);
 imagecolorallocate($img, 255,255,255);
 $line1 = imagecolorallocate($img,240,220,180);
 $line2 = imagecolorallocate($img,250,250,170);
 for($j=3;$j<=16;$j=$j+3){
  imageline($img,2,$j,48,$j,$line1);
 }
 for($j=2;$j<52;$j=$j+(mt_rand(3,6))){
  imageline($img,$j,2,$j-6,18,$line2);
 }
 $bordercolor = imagecolorallocate($img, 0x99,0x99,0x99);
 imagerectangle($img, 0, 0, 49, 19, $bordercolor);
 $fontcolor = imagecolorallocate($img, 48,61,50);
 for($i=0;$i<$vstrlen;$i++){
  $bc = mt_rand(0,1);
  $vstr[$i] = strtoupper($vstr[$i]);
  imagestring($img, 5, $i*10+6, mt_rand(2,4), $vstr[$i], $fontcolor);
 }

 header("pragma:no-cachern");
 header("cache-control:no-cachern");
 header("expires:0rn");

 if(function_exists("imagejpeg")){
  header("content-type:image/jpegrn");
  imagejpeg($img);
 }else{
  header("content-type:image/pngrn");
  imagepng($img);
 }
 imagedestroy($img);
 exit();
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved