php實(shí)現(xiàn)可運(yùn)算的驗(yàn)證碼
本文分享了php實(shí)現(xiàn)可運(yùn)算的驗(yàn)證碼的代碼實(shí)例,希望對(duì)大家的學(xué)習(xí)有所幫助。
demo.php代碼
<?php session_start(); if(!emptyempty($_POST['Login'])){ if(md5(strtoupper($_POST['Login'])) == $_SESSION['Login']){ echo 'Correct'; }else{ echo 'Error'; } } ?> <form method="post"> <input type="text" name="Login" value="" /><img src="img.php?Action=Login&imgW=80&imgH=30" align="absmiddle"> <input type="submit" value="Login" /> </form>
img.php代碼
<?php session_start(); /** * 隨機(jī)的數(shù)字,之和驗(yàn)證碼 * 修改日期 2006-12-20 */ function getCode ($length = 32, $mode = 0) { switch ($mode) { case '1': $str = '123456789'; break; case '2': $str = 'abcdefghijklmnopqrstuvwxyz'; break; case '3': $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; break; case '4': $str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; break; case '5': $str = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'; break; case '6': $str = 'abcdefghijklmnopqrstuvwxyz1234567890'; break; default: $str = 'ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'; break; } $result = ''; $l = strlen($str)-1; for($i = 0;$i < $length;$i ++) { $num = rand(0, $l); $result .= $str[$num]; } return $result; } //建立驗(yàn)證圖片 function createAuthNumImg($randStr,$imgW=100,$imgH=40,$fontName) { header ("content-type: image/png"); $image = imagecreate($imgW , $imgH); $color_white = imagecolorallocate($image , 255 , 255 , 255); $color_gray = imagecolorallocate($image , 228 , 228 , 228); $color_black = imagecolorallocate($image , 255 , 102 , 204); for ($i = 0 ; $i < 1000 ; $i++) { imagesetpixel($image , mt_rand(0 , $imgW) , mt_rand(0 , $imgH) , $color_gray); } imagerectangle($image , 0 , 0 , $imgW - 1 , $imgH - 1 , $color_gray); for ($i=10;$i<$imgH;$i+=10) imageline($image, 0, $i, $imgW, $i, $color_gray); imagettftext($image,16,5,3,25,$color_black,$fontName,$randStr); for ($i=10;$i<$imgW;$i+=10) imageline($image, $i, 0, $i, $imgH, $color_gray); imagepng($image); imagedestroy($image); } $a=GetCode(1,1); $b=GetCode(1,1); $c=GetCode(1,1); $Passport=$a."+".$b."+".$c; $Total=$a+$b+$c; $Total; $_SESSION[$_GET['Action']]=md5(strtoupper($Total)); createAuthNumImg($Passport,$_GET['imgW'],$_GET['imgH'],"verdana.ttf"); ?>
以上就是為大家介紹的php可運(yùn)算的驗(yàn)證碼全部代碼,希望對(duì)大家的學(xué)習(xí)有所幫助。
- php常用數(shù)學(xué)函數(shù)匯總
- 第四章 php數(shù)學(xué)運(yùn)算
- PHP幾個(gè)數(shù)學(xué)計(jì)算的內(nèi)部函數(shù)學(xué)習(xí)整理
- php 數(shù)學(xué)運(yùn)算驗(yàn)證碼實(shí)現(xiàn)代碼
- 簡單談?wù)刾hp浮點(diǎn)數(shù)精確運(yùn)算
- 非常全面的php日期時(shí)間運(yùn)算匯總
- ThinkPHP自定義函數(shù)解決模板標(biāo)簽加減運(yùn)算的方法
- php對(duì)文件進(jìn)行hash運(yùn)算的方法
- php中的比較運(yùn)算符詳解
- (PHP實(shí)現(xiàn))只使用++運(yùn)算實(shí)現(xiàn)加法,減法,乘法,除法
- PHP常用特殊運(yùn)算符號(hào)和函數(shù)總結(jié)(php新手入門必看)
- PHP數(shù)學(xué)運(yùn)算函數(shù)大匯總(經(jīng)典值得收藏)
相關(guān)文章
php去掉URL網(wǎng)址中帶有PHPSESSID的配置方法
這篇文章主要介紹了php開發(fā)的網(wǎng)站網(wǎng)址中帶有PHPSESSID的解決辦法,也就是把PHP的跨頁傳遞SESSION選擇在php.ini中關(guān)閉,這樣這個(gè)參數(shù)就不會(huì)出現(xiàn)在URL中了,需要的朋友可以參考下2014-07-07PHP Header用于頁面跳轉(zhuǎn)時(shí)的幾個(gè)注意事項(xiàng)
大家都知道header函數(shù)中Location類型的標(biāo)頭是一種特殊的header調(diào)用,常用來實(shí)現(xiàn)頁面跳轉(zhuǎn),在新手剛學(xué)習(xí)的時(shí)候有些注意事項(xiàng)要注意,下面通過本文來詳細(xì)看看吧。2016-10-10PHP向?yàn)g覽器輸出內(nèi)容的4個(gè)函數(shù)總結(jié)
這篇文章主要介紹了PHP向?yàn)g覽器輸出內(nèi)容的4個(gè)函數(shù)總結(jié),本文總結(jié)的就是print()、echo()、printf()、sprintf()這4個(gè)輸出函數(shù),需要的朋友可以參考下2014-11-11redis+php實(shí)現(xiàn)微博(三)微博列表功能詳解
這篇文章主要介紹了redis+php實(shí)現(xiàn)微博列表功能,結(jié)合實(shí)例形式分析了php+redis獲取微博關(guān)注人列表及微博發(fā)布信息列表的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09php實(shí)現(xiàn)二進(jìn)制和文本相互轉(zhuǎn)換的方法
這篇文章主要介紹了php實(shí)現(xiàn)二進(jìn)制和文本相互轉(zhuǎn)換的方法,實(shí)例分析了文本與數(shù)制轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04