一個(gè)簡(jiǎn)單的PHP驗(yàn)證碼實(shí)現(xiàn)代碼
實(shí)現(xiàn)代碼:
<?php
//將驗(yàn)證碼保存到session里,供全局使用
session_start();
$nums = "";
for($i=0;$i<4;$i++){
//產(chǎn)生隨機(jī)數(shù)并轉(zhuǎn)換成十六進(jìn)制
$nums.=dechex(mt_rand(0,15));
}
//將驗(yàn)證碼寫(xiě)入session
$_SESSION['code']=$nums;
//設(shè)置驗(yàn)證碼長(zhǎng)和寬
$_width = 60;
$_height = 20;
//創(chuàng)建一張圖片
$_img = imagecreatetruecolor($_width,$_height);
//創(chuàng)建一個(gè)白色
$_white = imagecolorallocate($_img,220,250,250);
//填充背景
imagefill($_img,0,0,$_white);
//隨機(jī)畫(huà)6條線條
for($i=0;$i<6;$i++){
$_rnd_color = imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imageline($_img,mt_rand(0,$_width),mt_rand(0,$_width),mt_rand(0,$_width),mt_rand(0,$_width),$_rnd_color);
}
//隨機(jī)畫(huà)出雪花
for($i=0;$i<60;$i++){
imagestring($_img,1,mt_rand(1,$_width),mt_rand(1,$_height),"*",imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
}
//輸出驗(yàn)證碼
for($i=0;$i<strlen($_SESSION['code']);$i++){
imagestring($_img,mt_rand(6,10),$i*$_width/4+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],imagecolorallocate($_img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
}
//輸出和銷(xiāo)毀
header("Content-Type:image/png");
imagepng($_img);
imagedestroy($_img);
?>
相關(guān)文章
2014最熱門(mén)的24個(gè)php類(lèi)庫(kù)匯總
本文給大家分享24個(gè)免費(fèi)并且高質(zhì)量的PHP類(lèi)庫(kù),也是2014年比較熱門(mén)流行的類(lèi)庫(kù),這里推薦給大家。2014-12-12
微信小程序之支付后調(diào)用SDK的異步通知及驗(yàn)證處理訂單方法
下面小編就為大家分享一篇微信小程序之支付后調(diào)用SDK的異步通知及驗(yàn)證處理訂單方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2018-01-01
php中PDO方式實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查
PDO是mysql數(shù)據(jù)庫(kù)操作的一個(gè)公用類(lèi)了,我們不需要進(jìn)行自定類(lèi)就可以直接使用pdo來(lái)操作數(shù)據(jù)庫(kù)了,但是在php默認(rèn)配置中pdo是未開(kāi)啟所以我們必須先在php.ini中開(kāi)啟它才可以使用。2015-05-05
php微信公眾號(hào)開(kāi)發(fā)之簡(jiǎn)答題
這篇文章主要為大家詳細(xì)介紹了php微信公眾號(hào)開(kāi)發(fā)之簡(jiǎn)答題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
PHP實(shí)現(xiàn)自動(dòng)發(fā)送郵件功能代碼(qq 郵箱)
本文給大家分享以qq郵箱為例給大家介紹PHP實(shí)現(xiàn)自動(dòng)發(fā)送郵件功能代碼,感興趣的朋友參考下吧2017-08-08

