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)代碼
- 簡(jiǎ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的跨頁(yè)傳遞SESSION選擇在php.ini中關(guān)閉,這樣這個(gè)參數(shù)就不會(huì)出現(xiàn)在URL中了,需要的朋友可以參考下2014-07-07
php中長(zhǎng)文章分頁(yè)顯示實(shí)現(xiàn)代碼
php中長(zhǎng)文章分頁(yè)顯示實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-09-09
PHP Header用于頁(yè)面跳轉(zhuǎn)時(shí)的幾個(gè)注意事項(xiàng)
大家都知道header函數(shù)中Location類型的標(biāo)頭是一種特殊的header調(diào)用,常用來(lái)實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),在新手剛學(xué)習(xí)的時(shí)候有些注意事項(xiàng)要注意,下面通過本文來(lái)詳細(xì)看看吧。2016-10-10
PHP向?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-11
redis+php實(shí)現(xiàn)微博(三)微博列表功能詳解
這篇文章主要介紹了redis+php實(shí)現(xiàn)微博列表功能,結(jié)合實(shí)例形式分析了php+redis獲取微博關(guān)注人列表及微博發(fā)布信息列表的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
php實(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

