PHP編寫登錄驗證碼功能 附調(diào)用方法
更新時間:2016年05月19日 15:20:50 投稿:lijiao
這篇文章主要介紹了PHP編寫登錄驗證碼功能,文末附調(diào)用方法,并包含隨機字符函數(shù),和GD庫畫圖函數(shù),感興趣的小伙伴們可以參考一下
本文實例為大家分享了一個PHP寫的登錄驗證碼功能,供大家參考,具體內(nèi)容如下
ShowKey.php
<?php session_start(); //設(shè)置COOKIE或Session function esetcookie($name,$str,$life=0){ //本函數(shù)將字符串 str 全部變小寫字符串使驗證碼輸入不區(qū)分大小寫----在提交表單進行session比較同樣需要次函數(shù)轉(zhuǎn)化 $_SESSION[$name]=strtolower($str); } //獲取隨機字符 此函數(shù)區(qū)分字符大小寫 如果不區(qū)分大小寫可加入函數(shù)strtolower function 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);// 將數(shù)組打亂 $output = ""; for ($i=0; $i<$len; $i++) { $output .= $chars[mt_rand(0, $charsLen)]; //獲得一個數(shù)組元素 } 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(); ?>
調(diào)用方法:
復(fù)制代碼 代碼如下:
<img src="ShowKey.php" name="KeyImg" id="KeyImg" onClick="KeyImg.src='ShowKey.php?'+Math.random()">
以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)php程序設(shè)計有所幫助。
您可能感興趣的文章:
- php cookie 登錄驗證示例代碼
- PHP通過session id 實現(xiàn)session共享和登錄驗證的代碼
- php session應(yīng)用實例 登錄驗證
- 簡單的方法讓你的后臺登錄更加安全(php中加session驗證)
- php+MySQL實現(xiàn)登錄時驗證登錄名和密碼是否正確
- PHP登錄驗證碼的實現(xiàn)與使用方法
- php自動注冊登錄驗證機制實現(xiàn)代碼
- PHP+Ajax驗證碼驗證用戶登錄
- PHP登錄驗證功能示例【用戶名、密碼、驗證碼、數(shù)據(jù)庫、已登陸驗證、自動登錄和注銷登錄等】
- php面向?qū)ο蟮挠脩舻卿浬矸蒡炞C
- PHP實現(xiàn)登錄驗證碼校驗功能
- PHP 實現(xiàn)超簡單的SESSION與COOKIE登錄驗證功能示例
相關(guān)文章
php操作mysql獲取select 結(jié)果的幾種方法
這篇文章主要介紹了php操作mysql獲取select 結(jié)果的幾種方法,需要的朋友可以參考下2017-11-11