PHP編寫登錄驗(yàn)證碼功能 附調(diào)用方法
更新時(shí)間:2016年05月19日 15:20:50 投稿:lijiao
這篇文章主要介紹了PHP編寫登錄驗(yàn)證碼功能,文末附調(diào)用方法,并包含隨機(jī)字符函數(shù),和GD庫(kù)畫圖函數(shù),感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了一個(gè)PHP寫的登錄驗(yàn)證碼功能,供大家參考,具體內(nèi)容如下
ShowKey.php
<?php session_start(); //設(shè)置COOKIE或Session function esetcookie($name,$str,$life=0){ //本函數(shù)將字符串 str 全部變小寫字符串使驗(yàn)證碼輸入不區(qū)分大小寫----在提交表單進(jìn)行session比較同樣需要次函數(shù)轉(zhuǎn)化 $_SESSION[$name]=strtolower($str); } //獲取隨機(jī)字符 此函數(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)]; //獲得一個(gè)數(shù)組元素 } return $output; } //顯示驗(yàn)證碼 function ShowKey(){ $key=domake_password(4);//獲取隨機(jī)值 $set=esetcookie("checkkey",$key);//將隨機(jī)值寫入cookie或session //是否支持gd庫(kù) 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 { //不支持驗(yàn)證碼 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()">
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- php cookie 登錄驗(yàn)證示例代碼
- PHP通過(guò)session id 實(shí)現(xiàn)session共享和登錄驗(yàn)證的代碼
- php session應(yīng)用實(shí)例 登錄驗(yàn)證
- 簡(jiǎn)單的方法讓你的后臺(tái)登錄更加安全(php中加session驗(yàn)證)
- php+MySQL實(shí)現(xiàn)登錄時(shí)驗(yàn)證登錄名和密碼是否正確
- PHP登錄驗(yàn)證碼的實(shí)現(xiàn)與使用方法
- php自動(dòng)注冊(cè)登錄驗(yàn)證機(jī)制實(shí)現(xiàn)代碼
- PHP+Ajax驗(yàn)證碼驗(yàn)證用戶登錄
- PHP登錄驗(yàn)證功能示例【用戶名、密碼、驗(yàn)證碼、數(shù)據(jù)庫(kù)、已登陸驗(yàn)證、自動(dòng)登錄和注銷登錄等】
- php面向?qū)ο蟮挠脩舻卿浬矸蒡?yàn)證
- PHP實(shí)現(xiàn)登錄驗(yàn)證碼校驗(yàn)功能
- PHP 實(shí)現(xiàn)超簡(jiǎn)單的SESSION與COOKIE登錄驗(yàn)證功能示例
相關(guān)文章
php簡(jiǎn)單實(shí)現(xiàn)無(wú)限分類樹形列表的方法
這篇文章主要介紹了php簡(jiǎn)單實(shí)現(xiàn)無(wú)限分類樹形列表的方法,實(shí)例分析了php通過(guò)數(shù)組實(shí)現(xiàn)樹形列表的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03PHP使用ODBC連接數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了PHP使用ODBC連接數(shù)據(jù)庫(kù)的方法,涉及php使用ODBC操作數(shù)據(jù)庫(kù)的基本技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07php操作mysql獲取select 結(jié)果的幾種方法
這篇文章主要介紹了php操作mysql獲取select 結(jié)果的幾種方法,需要的朋友可以參考下2017-11-11PHP使用PDO實(shí)現(xiàn)mysql防注入功能詳解
這篇文章主要介紹了PHP使用PDO實(shí)現(xiàn)mysql防注入功能,結(jié)合實(shí)例形式詳細(xì)分析了PHP使用pdo操作mysql防注入原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-12-12