PHP實現登入驗證碼功能及調用方法

來源:互聯網
上載者:User
這篇文章主要介紹了PHP實現登入驗證碼功能,文末附調用方法,並包含隨機字元函數,和GD庫畫圖函數,感興趣的小夥伴們可以參考一下

ShowKey.php

<?phpsession_start();//設定COOKIE或Sessionfunction esetcookie($name,$str,$life=0){//本函數將字串 str 全部變小寫字串使驗證碼輸入不區分大小寫----在提交表單進行session比較同樣需要次函數轉化 $_SESSION[$name]=strtolower($str);}//擷取隨機字元 此函數區分字元大小寫 如果不區分大小寫可加入函數strtolowerfunction domake_password($len) {   $chars = array(     /*"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",     "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",     "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",     "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",     "S", "T", "U", "V", "W", "X", "Y", "Z",*/ "0", "1", "2",     "3", "4", "5", "6", "7", "8", "9"   );   $charsLen = count($chars) - 1;   shuffle($chars);// 將數組打亂  $output = "";   for ($i=0; $i<$len; $i++)   {     $output .= $chars[mt_rand(0, $charsLen)]; //獲得一個數組元素  }   return $output;} //顯示驗證碼function ShowKey(){ $key=domake_password(4);//擷取隨機值 $set=esetcookie("checkkey",$key);//將隨機值寫入cookie或session //是否支援gd庫 if(function_exists("imagejpeg"))  {  header ("Content-type: image/jpeg");  $img=imagecreate(47,20);  $blue=imagecolorallocate($img,102,102,102);  $white=ImageColorAllocate($img,255,255,255);  $black=ImageColorAllocate($img,71,71,71);  imagefill($img,0,0,$blue);  imagestring($img,5,6,3,$key,$white);  for($i=0;$i<90;$i++) //加入幹擾象素  {   imagesetpixel($img,rand()%70,rand()%30,$black);  }  imagejpeg($img);  imagedestroy($img); } elseif (function_exists("imagepng")) {  header ("Content-type: image/png");  $img=imagecreate(47,20);  $blue=imagecolorallocate($img,102,102,102);  $white=ImageColorAllocate($img,255,255,255);  $black=ImageColorAllocate($img,71,71,71);  imagefill($img,0,0,$blue);  imagestring($img,5,6,3,$key,$white);  for($i=0;$i<90;$i++) //加入幹擾象素  {   imagesetpixel($img,rand()%70,rand()%30,$black);  }  imagepng($img);  imagedestroy($img); } elseif (function_exists("imagegif"))  {  header("Content-type: image/gif");  $img=imagecreate(47,20);  $blue=imagecolorallocate($img,102,102,102);  $white=ImageColorAllocate($img,255,255,255);  $black=ImageColorAllocate($img,71,71,71);  imagefill($img,0,0,$blue);  imagestring($img,5,6,3,$key,$white);  for($i=0;$i<90;$i++) //加入幹擾象素  {   imagesetpixel($img,rand()%70,rand()%30,$black);  }  imagegif($img);  imagedestroy($img); } elseif (function_exists("imagewbmp"))  {  header ("Content-type: image/vnd.wap.wbmp");  $img=imagecreate(47,20);  $blue=imagecolorallocate($img,102,102,102);  $white=ImageColorAllocate($img,255,255,255);  $black=ImageColorAllocate($img,71,71,71);  imagefill($img,0,0,$blue);  imagestring($img,5,6,3,$key,$white);  for($i=0;$i<90;$i++) //加入幹擾象素  {   imagesetpixel($img,rand()%70,rand()%30,$black);  }  imagewbmp($img);  imagedestroy($img); } else {  //不支援驗證碼  header("content-type:image/jpeg\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");  }}ShowKey();?>

調用方法:

代碼如下:

<img src="ShowKey.php" name="KeyImg" id="KeyImg"  onClick="KeyImg.src='ShowKey.php?'+Math.random()">

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.