登錄/注冊驗證碼的實現(xiàn)與使用方法 PHP

平時我們在登錄或注冊一些網(wǎng)站的時候都會輸入一些驗證碼,驗證碼上也會有一些點或者線作為干擾項青团,當你看不見的時候可以選擇換一張或者看不清來切換驗證碼芦昔。這個方法是比較常見且常用的,前幾天自己也寫了一個,拿出來跟大家分享分享帖努,希望對大家有所幫助拼余。

首先你得創(chuàng)建一個PHP文件梭纹,創(chuàng)建好PHP文件之后就來看功能的實現(xiàn)方法吧致份。

// 設置session,必須處于腳本的最頂端
session_start();
// 新建一個真色彩圖像  imagecreatetruecolor(int $width, int $height)返回一個圖像表示诡宗,
// 代表一個x_size 和  y_size 的黑色圖像
$image = imagecreatetruecolor(100,30);
// imagecolorallocate  一幅圖像分配顏色
// 本函數(shù)用來匹配圖形的顏色,供其它繪圖函數(shù)使用。
// 參數(shù) image 表示圖形的 handle。參數(shù) red檩奠、green、blue 是色彩三原色,其值從0至255屋灌。
// imagecolorallocate($image,255,255,255);表示白色
$color = imagecolorallocate($image,255,255,255);
//區(qū)域填充 imagefill($image,0,0,$color);中的 0,0表示X岸蜗、Y軸的起始坐標
imagefill($image,0,0,$color);

$string = '';
//隨機生成數(shù)字
for ($i=0; $i < 4 ; $i++) {
// 設置字體的大小
$fontsize = 20;
// 設置字體顏色铃慷,隨機顏色
$fontcolor = imagecolorallocate($image,rand(0,50),rand(0,50),rand(0,50));
// 設置數(shù)字
// $fontcontent = rand(0,9);
// 設置數(shù)字加字母
$data = 'abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789';
// substr函數(shù)返回字符串中的一部分
// strlen函數(shù)返回字符串的長度
// rand生成隨機數(shù) rand(0,max)生成 0~max之間的隨機整數(shù)
$fontcontent = substr($data, rand(0,strlen($data) - 1),1);
// $fontcontent = substr($data, rand(0,strlen($data)),1);
$string .= $fontcontent;
// 設置坐標
$x = ($i*100/4)+ rand(5,10);
$y = rand(5,10);
// imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor)
// imagestring() 用fontcolor顏色將字符串fontcontent畫到image所代表的圖像的x,y坐標處
//(這是字符串左上角坐標坛怪,整幅圖像的左上角為 0,0)如果 font 是 1更啄,2义锥,3柱恤,4 或 5,
// 則使用內置字體薄料。
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}

// 存到session
$_SESSION['authcode'] = $string;

// 增加干擾元素,設置雪花點
for ($i=0; $i < 200 ; $i++) {
// 設置點的顏色巩梢,50-200顏色比數(shù)字淺不干擾閱讀
$pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
// imagesetpixel     畫一個單一像素
// imagesetpixel(圖片資源,X軸坐標范圍,Y軸坐標范圍,顏色標識符);
imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);
}

// 增加干擾元素,設置橫線
for ($i=0; $i < 4; $i++) {
// 設置線的顏色
$linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
// 設置線创泄,兩點一線
// imageline($image ,$x1 ,$y1 ,$x2 ,$y2 ,$color )
// imageline() 用 color 顏色在圖像 image 中從坐標
// x1艺玲,y1 到 x2,y2(圖像左上角為 0, 0)畫一條線段鞠抑。
imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
}

// 設置頭部饭聚,image/png
header('Content-Type:image/png');
//imagepng 建立png圖形函數(shù)
imagepng($image);
// imagedestroy  結束圖形函數(shù)  銷毀$image
imagedestroy($image);

運行的截圖如下:

圖 1
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市搁拙,隨后出現(xiàn)的幾起案子秒梳,更是在濱河造成了極大的恐慌,老刑警劉巖箕速,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酪碘,死亡現(xiàn)場離奇詭異,居然都是意外死亡盐茎,警方通過查閱死者的電腦和手機兴垦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庭呜,“玉大人滑进,你說我怎么就攤上這事∧蓟眩” “怎么了扶关?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長数冬。 經(jīng)常有香客問我节槐,道長,這世上最難降的妖魔是什么拐纱? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任铜异,我火速辦了婚禮,結果婚禮上秸架,老公的妹妹穿的比我還像新娘揍庄。我一直安慰自己,他們只是感情好东抹,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布蚂子。 她就那樣靜靜地躺著,像睡著了一般缭黔。 火紅的嫁衣襯著肌膚如雪食茎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天馏谨,我揣著相機與錄音别渔,去河邊找鬼。 笑死,一個胖子當著我的面吹牛哎媚,可吹牛的內容都是我干的喇伯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼抄伍,長吁一口氣:“原來是場噩夢啊……” “哼艘刚!你這毒婦竟也來了?” 一聲冷哼從身側響起截珍,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤攀甚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后岗喉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秋度,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年钱床,在試婚紗的時候發(fā)現(xiàn)自己被綠了荚斯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡查牌,死狀恐怖事期,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情纸颜,我是刑警寧澤兽泣,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站胁孙,受9級特大地震影響唠倦,放射性物質發(fā)生泄漏。R本人自食惡果不足惜涮较,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一稠鼻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狂票,春花似錦候齿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屋剑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诗眨,已是汗流浹背唉匾。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巍膘。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓厂财,卻偏偏與公主長得像,于是被迫代替她去往敵國和親峡懈。 傳聞我的和親對象是個殘疾皇子璃饱,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,730評論 25 707
  • 淺水逐新綠, 疏柳眺遠山肪康。 郊外春來早荚恶, 暖風使人酣。 桃花正吐蕊磷支, 櫻花初嬌艷谒撼。 更待春雨后, 繽紛滿人間雾狈。
    鑿冰而釣閱讀 307評論 0 0
  • 《胡適談讀書——進一寸有一寸的喜歡》讀書筆記 之所以選擇胡適先生這本書廓潜,是希望它能給讀書困難癥的我一點鼓勵和啟發(fā),...
    三分鐘熱度姑娘要堅持閱讀 800評論 0 1
  • 不知不覺時間又快到了零點了善榛,忙碌的時間總是過得那么的快辩蛋,下班后做飯、發(fā)貨移盆、聽課悼院、和導師和大學室友聊創(chuàng)業(yè),現(xiàn)在聽著音...
    我是小施妹閱讀 580評論 2 5