最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于PHP制作驗(yàn)證碼

 更新時(shí)間:2016年10月12日 14:59:36   作者:蘇振鵬_Sean  
這篇文章主要介紹了基于PHP制作驗(yàn)證碼,需要的朋友可以參考下

網(wǎng)站注冊(cè)、登錄又或者是留言頁(yè)面,都需要注冊(cè)碼來(lái)驗(yàn)證當(dāng)前操作者的合法性,為了防止網(wǎng)站被機(jī)器惡意注冊(cè)。

生成驗(yàn)證碼無(wú)非就那么幾個(gè)步驟,首先是獲取一個(gè)隨機(jī)字符串,然后創(chuàng)建一個(gè)布畫,將生成的字符串寫到布畫上,我們還可以在布畫上畫線畫雪花,現(xiàn)在帖一段生成驗(yàn)證碼的代碼。

源代碼:

<?php
session_start(); //開啟session
//創(chuàng)建隨機(jī)碼,并保存在session中
for($i=0;$i<4;$i++)
{
$_nmsg.=dechex(mt_rand(0,15));
}
//保存到session中
$_SESSION['code']=$_nmsg;
//設(shè)置圖片長(zhǎng)和高

$_width=75;
$_height=25;
//創(chuàng)建一張圖像
$_img=imagecreatetruecolor($_width,$_height);

//白色背景
$_white=imagecolorallocate($_img,255,255,255);
//填充到背景上
imagefill($_img,0,0,$_white);

//黑色邊框
$_black=imagecolorallocate($_img,0,0,0);
imagerectangle($_img,0,0,$_width-1,$_height-1,$_black);

//隨即畫出5個(gè)線條
for($i=0;$i<5;$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,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_rnd_color);
}

//雪花
for($i=0;$i<10;$i++)
{
$_rnd_color=imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
imagestring($_img,1,mt_rand(1,$_width),mt_rand(1,$_height),"*",$_rnd_color);
}

//輸出驗(yàn)證碼

for($i=0;$i<strlen($_SESSION['code']);$i++)
{
imagestring($_img,5,10+$i*15,mt_rand(0,10),$_SESSION['code'][$i],$_blackr);
}

//輸出圖像
header('Content-Type:image/png');
imagepng($_img);
//銷毀圖像
imagedestroy($_img);
?>

代碼中將使用以下函數(shù):

mt_rand — 生成更好的隨機(jī)數(shù)
int mt_rand ([ int $min ], int $max )很多老的 libc 的隨機(jī)數(shù)發(fā)生器具有一些不確定和未知的特性而且很慢。PHP 的 rand() 函數(shù)默認(rèn)使用 libc 隨機(jī)數(shù)發(fā)生器。

mt_rand()函數(shù)是非正式用來(lái)替換它的。該函數(shù)用了Mersenne Twister中已知的特性作為隨機(jī)數(shù)發(fā)生器,它可以產(chǎn)生隨機(jī)數(shù)值的平均速度比 libc 提供的 rand() 快四倍。

dechex — 十進(jìn)制轉(zhuǎn)換為十六進(jìn)制返回一字符串,包含有給定 number參數(shù)的十六進(jìn)制表示。所能轉(zhuǎn)換的最大數(shù)值為十進(jìn)制的 4294967295,其結(jié)果為 "ffffffff"。

imagecreatetruecolor — 新建一個(gè)真彩色圖像
resource imagecreatetruecolor ( int $x_size , int $y_size )

imagecreatetruecolor() 返回一個(gè)圖像標(biāo)識(shí)符,代表了一幅大小為 x_size 和 y_size 的黑色圖像。

imagecolorallocate — 為一幅圖像分配顏色
int imagecolorallocate ( resource $image , int $red , int $green , int $blue )
imagecolorallocate() 返回一個(gè)標(biāo)識(shí)符,代表了由給定的 RGB 成分組成的顏色。red,green 和 blue 分別是所需要的顏色的紅,綠,藍(lán)成分。這些參數(shù)是 0 到 255 的整數(shù)或者十六進(jìn)制的 0x00 到 0xFF。imagecolorallocate()必須被調(diào)用以創(chuàng)建每一種用在 image 所代表的圖像中的顏色。

imagefill — 區(qū)域填充
bool imagefill ( resource $image , int $x , int $y , int $color )
imagefill() 在 image圖像的坐標(biāo) x,y(圖像左上角為 0, 0)處用 color顏色執(zhí)行區(qū)域填充(即與 x, y 點(diǎn)顏色相同且相鄰的點(diǎn)都會(huì)被填充)。

imagerectangle — 畫一個(gè)矩形
bool imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $col )
imagerectangle() 用 col 顏色在 image 圖像中畫一個(gè)矩形,其左上角坐標(biāo)為 x1, y1,右下角坐標(biāo)為 x2, y2。圖像的左上角坐標(biāo)為 0, 0。

imageline — 畫一條線段
bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
imageline() 用 color顏色在圖像 image 中從坐標(biāo) x1,y1 到 x2,y2(圖像左上角為 0, 0)畫一條線段。

imagestring — 水平地畫一行字符串
bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )
imagestring() 用 col顏色將字符串 s 畫到 image所代表的圖像的 x,y坐標(biāo)處(這是字符串左上角坐標(biāo),整幅圖像的左上角為 0,0)。如果 font 是 1,2,3,4 或 5,則使用內(nèi)置字體。

imagepng — 以 PNG 格式將圖像輸出到瀏覽器或文件
imagepng() 將 GD 圖像流(image)以 PNG 格式輸出到標(biāo)準(zhǔn)輸出(通常為瀏覽器),或者如果用 filename 給出了文件名則將其輸出到該文件。

imagedestroy — 銷毀一圖像

imagedestroy() 釋放與 image 關(guān)聯(lián)的內(nèi)存。

將源代碼保存為code.php是個(gè)php文件,我們?cè)撊绾问褂盟兀?/p>

imagepng已經(jīng)將這個(gè)php文件輸出成了png文件

直接調(diào)用就可以了

<img src="mycode.php"/>

如果要使用驗(yàn)證碼,記得開啟session哦

<?php
session_start();
echo $_SESSION['code'];
?>

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 關(guān)于PHP的相似度計(jì)算函數(shù):levenshtein的使用介紹

    關(guān)于PHP的相似度計(jì)算函數(shù):levenshtein的使用介紹

    本篇文章小編將為大家介紹,關(guān)于PHP的相似度計(jì)算函數(shù) levenshtein的使用介紹,有需要的朋友可以參考一下
    2013-04-04
  • 摘自織夢(mèng)CMS的HTTP文件下載類

    摘自織夢(mèng)CMS的HTTP文件下載類

    這篇文章主要介紹了摘自織夢(mèng)CMS的HTTP文件下載類,涉及php發(fā)送http請(qǐng)求、響應(yīng)、傳輸?shù)瘸S貌僮骷记?具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • 深入剖析瀏覽器退出之后php還會(huì)繼續(xù)執(zhí)行么

    深入剖析瀏覽器退出之后php還會(huì)繼續(xù)執(zhí)行么

    覽器退出之后php還會(huì)繼續(xù)執(zhí)行么?下面小編就為大家介紹一下究竟覽器退出之后php還會(huì)不會(huì)繼續(xù)執(zhí)行。一起跟隨小編過來(lái)看看吧
    2016-05-05
  • 8個(gè)必備的PHP功能實(shí)例代碼

    8個(gè)必備的PHP功能實(shí)例代碼

    本文將分享8個(gè)開發(fā)必備的PHP功能,個(gè)個(gè)都非常實(shí)用:傳遞任意數(shù)量的函數(shù)參數(shù) 、使用glob()查找文件、獲取內(nèi)存使用情況信息、獲取CPU使用情況信息 、獲取系統(tǒng)常量 、生成唯一的id 、序列化 、字符串壓縮。很實(shí)用的8個(gè)PHP功能。
    2013-10-10
  • PHP getallheaders無(wú)法獲取自定義頭(headers)的問題

    PHP getallheaders無(wú)法獲取自定義頭(headers)的問題

    這篇文章主要介紹了PHP getallheaders無(wú)法獲取自定義頭(headers)的問題的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • discuz7 phpMysql操作類

    discuz7 phpMysql操作類

    MySql數(shù)據(jù)庫(kù)連接類,大家可以看下網(wǎng)上老手們用的什么方法,大家可以直接拿來(lái)用,但前提是大家能熟練的掌握的基礎(chǔ)上,這樣才能有所進(jìn)步。
    2009-06-06
  • Laravel5.1 框架模型軟刪除操作實(shí)例分析

    Laravel5.1 框架模型軟刪除操作實(shí)例分析

    這篇文章主要介紹了Laravel5.1 框架模型軟刪除操作,結(jié)合實(shí)例形式分析了laravel5.1框架軟刪除的原理及普通刪除與軟刪除的相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01
  • php 訪問oracle 存儲(chǔ)過程實(shí)例詳解

    php 訪問oracle 存儲(chǔ)過程實(shí)例詳解

    這篇文章主要介紹了php 訪問oracle 存儲(chǔ)過程實(shí)例詳解的相關(guān)資料,這里附有實(shí)例代碼,幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-01-01
  • ThinkPHP5 的簡(jiǎn)單搭建和使用詳解

    ThinkPHP5 的簡(jiǎn)單搭建和使用詳解

    這篇文章主要介紹了ThinkPHP5 的簡(jiǎn)單搭建和使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-11-11
  • 服務(wù)器遷移php版本不同可能誘發(fā)的問題

    服務(wù)器遷移php版本不同可能誘發(fā)的問題

    今天在服務(wù)器做了遷移以后,前臺(tái)可以正常顯示和調(diào)用,登陸后臺(tái)顯示500錯(cuò)誤,一般這種情況下都要查看核心跳轉(zhuǎn)文件,經(jīng)查看發(fā)現(xiàn)login.php文件并沒有調(diào)用.因?yàn)檎也坏絣ogin.php文件,那就證明這個(gè)文件里是有語(yǔ)法錯(cuò)誤
    2015-12-12

最新評(píng)論

修武县| 东莞市| 象山县| 武山县| 栾城县| 白朗县| 晋城| 清原| 邓州市| 永安市| 洪洞县| 华容县| 徐州市| 扎赉特旗| 无棣县| 裕民县| 赞皇县| 永胜县| 呈贡县| 平阴县| 平山县| 花垣县| 湖北省| 瑞金市| 安徽省| 大关县| 突泉县| 巧家县| 锡林浩特市| 大同县| 二连浩特市| 芮城县| 长丰县| 乐昌市| 仲巴县| 清丰县| 色达县| 碌曲县| 丽水市| 会同县| 平泉县|