PHP驗(yàn)證碼函數(shù)代碼(簡(jiǎn)單實(shí)用)
更新時(shí)間:2013年09月29日 16:44:27 作者:
這篇文章主要分享了php中簡(jiǎn)單的驗(yàn)證碼函數(shù)實(shí)現(xiàn)代碼,代碼比較短,但效果卻不錯(cuò),喜歡的朋友可以試試
效果圖:

<?php
/**
* vCode(m,n,x,y) m個(gè)數(shù)字 顯示大小為n 邊寬x 邊高y
* micxp
*jb51.net
*/
session_start();
vCode(4, 15); //4個(gè)數(shù)字,顯示大小為15
function vCode($num = 4, $size = 20, $width = 0, $height = 0) {
!$width && $width = $num * $size * 4 / 5 + 5;
!$height && $height = $size + 10;
// 去掉了 0 1 O l 等
$str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";
$code = '';
for ($i = 0; $i < $num; $i++) {
$code .= $str[mt_rand(0, strlen($str)-1)];
}
// 畫圖像
$im = imagecreatetruecolor($width, $height);
// 定義要用到的顏色
$back_color = imagecolorallocate($im, 235, 236, 237);
$boer_color = imagecolorallocate($im, 118, 151, 199);
$text_color = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
// 畫背景
imagefilledrectangle($im, 0, 0, $width, $height, $back_color);
// 畫邊框
imagerectangle($im, 0, 0, $width-1, $height-1, $boer_color);
// 畫干擾線
for($i = 0;$i < 5;$i++) {
$font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagearc($im, mt_rand(- $width, $width), mt_rand(- $height, $height), mt_rand(30, $width * 2), mt_rand(20, $height * 2), mt_rand(0, 360), mt_rand(0, 360), $font_color);
}
// 畫干擾點(diǎn)
for($i = 0;$i < 50;$i++) {
$font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $font_color);
}
// 畫驗(yàn)證碼
@imagefttext($im, $size , 0, 5, $size + 3, $text_color, 'c:\\WINDOWS\\Fonts\\simsun.ttc', $code);
$_SESSION["VerifyCode"]=$code;
header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
header("Content-type: image/png;charset=gb2312");
imagepng($im);
imagedestroy($im);
}
?>

復(fù)制代碼 代碼如下:
<?php
/**
* vCode(m,n,x,y) m個(gè)數(shù)字 顯示大小為n 邊寬x 邊高y
* micxp
*jb51.net
*/
session_start();
vCode(4, 15); //4個(gè)數(shù)字,顯示大小為15
function vCode($num = 4, $size = 20, $width = 0, $height = 0) {
!$width && $width = $num * $size * 4 / 5 + 5;
!$height && $height = $size + 10;
// 去掉了 0 1 O l 等
$str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";
$code = '';
for ($i = 0; $i < $num; $i++) {
$code .= $str[mt_rand(0, strlen($str)-1)];
}
// 畫圖像
$im = imagecreatetruecolor($width, $height);
// 定義要用到的顏色
$back_color = imagecolorallocate($im, 235, 236, 237);
$boer_color = imagecolorallocate($im, 118, 151, 199);
$text_color = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
// 畫背景
imagefilledrectangle($im, 0, 0, $width, $height, $back_color);
// 畫邊框
imagerectangle($im, 0, 0, $width-1, $height-1, $boer_color);
// 畫干擾線
for($i = 0;$i < 5;$i++) {
$font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagearc($im, mt_rand(- $width, $width), mt_rand(- $height, $height), mt_rand(30, $width * 2), mt_rand(20, $height * 2), mt_rand(0, 360), mt_rand(0, 360), $font_color);
}
// 畫干擾點(diǎn)
for($i = 0;$i < 50;$i++) {
$font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $font_color);
}
// 畫驗(yàn)證碼
@imagefttext($im, $size , 0, 5, $size + 3, $text_color, 'c:\\WINDOWS\\Fonts\\simsun.ttc', $code);
$_SESSION["VerifyCode"]=$code;
header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
header("Content-type: image/png;charset=gb2312");
imagepng($im);
imagedestroy($im);
}
?>
相關(guān)文章
Laravel5.5 支付寶手機(jī)網(wǎng)站支付的教程
這篇文章主要介紹了Laravel5.5 支付寶手機(jī)網(wǎng)站支付的教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
PHP版本升級(jí)到7.x后wordpress的一些修改及wordpress技巧
這篇文章主要介紹了PHP版本升級(jí)到7.x后wordpress的一些修改及wordpress技巧的相關(guān)資料,需要的朋友可以參考下2015-12-12
php json_encode與json_decode詳解及實(shí)例
這篇文章主要介紹了php json_encode與json_decode詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-12-12
ThinkPHP框架實(shí)現(xiàn)session跨域問(wèn)題的解決方法
這篇文章主要介紹了ThinkPHP框架實(shí)現(xiàn)session跨域問(wèn)題的解決方法,需要的朋友可以參考下2014-07-07
PHP結(jié)合jQuery插件ajaxFileUpload實(shí)現(xiàn)異步上傳文件實(shí)例
這篇文章主要介紹了PHP結(jié)合jQuery插件ajaxFileUpload實(shí)現(xiàn)異步上傳文件實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-11-11
php實(shí)現(xiàn)評(píng)論回復(fù)刪除功能
這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)評(píng)論回復(fù)刪除功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Yii+MYSQL鎖表防止并發(fā)情況下重復(fù)數(shù)據(jù)的方法
這篇文章主要介紹了Yii+MYSQL鎖表防止并發(fā)情況下重復(fù)數(shù)據(jù)的方法,分析了MySQL讀鎖定、寫鎖定及Yii實(shí)現(xiàn)MySQL讀寫鎖定的相關(guān)技巧,需要的朋友可以參考下2016-07-07

