国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

辛星和您用更簡略的方式去實現(xiàn)PHP中的驗證碼

php中文網(wǎng)
發(fā)布: 2016-06-13 12:03:13
原創(chuàng)
1086人瀏覽過

辛星和您用更簡單的方式去實現(xiàn)PHP中的驗證碼

? ? ? ?說實話,提到驗證碼我想大家都不會陌生,確實,驗證碼還是挺常見的,現(xiàn)在搜索一下php的驗證碼類簡直是海量的數(shù)據(jù),那我們今天就來實現(xiàn)一個自己的驗證碼把,不過它比較簡單,這也是我說的用更簡單的方式去實現(xiàn)一個驗證碼。

? ? ? ?總的來說分成兩步,第一步就是先實現(xiàn)一個驗證碼,第二步就是通過這個驗證碼來進行驗證,我們先看一下如何去實現(xiàn)這個驗證碼,當然這里需要用到gd庫的知識,請看下面的代碼示例:

<?php//首先要開啟sessionsession_start();//說明這是一張圖片header("Content-type:image/png");//用來動態(tài)生成的數(shù)字和字母組合$str = "3,4,5,6,7,8,9,a,b,c,d,e,f,g";//轉(zhuǎn)化為數(shù)組$list = explode(",",$str);//得到該數(shù)組的下標的最大值$max = count($list) - 1;//用于表示該驗證碼$verify = "";//生成驗證碼字符串for($i = 0; $i <5;$i ++){	$rand = mt_rand(0,$max);	$verify .= $list[$rand];}//寫入session$_SESSION['code'] = $verify;//生成一個58x28的圖片$im = imagecreate(58,28);//產(chǎn)生黑色$black = imagecolorallocate($im,0,0,0);//產(chǎn)生白色$white = imagecolorallocate($im,255,255,255);//先用白色背景把圖片刷成白色imagefill($im,0,0,$white);//然后把字符串寫到圖片上去imagestring($im,5,10,8,$verify,$black);//生成png圖片,并且顯示到屏幕上imagepng($im);//銷毀該圖片imagedestroy($im);
登錄后復制

? ? ? 這里順便說一下畫圖的基本步驟把:首先創(chuàng)建一個圖像,我們用imagecreate函數(shù),然后用imagecolorallocate來調(diào)色,然后用各種imagexxx來繪制圖像,最后用imagexxx來生成各種樣式的圖片,最后imagedestroy來銷毀圖片,大致都是這么一個流程。其中我感覺比較值得一提的是imagestring的參數(shù),第一個表示繪畫的圖片這個沒的說,第二額參數(shù)表示的是字體,如果為0,1,2,3,4,5則表示內(nèi)置字體,第三個參數(shù)表示繪畫的左上角的x坐標,第四個表示繪畫的左上角的y坐標,第五個參數(shù)是顏色,我們這里采用了黑色來繪圖。

來看一下我們生成的圖片是什么樣子的把:

立即學習PHP免費學習筆記(深入)”;


那么我們怎么使用該驗證碼呢?既然文件都寫好了,那么我們再寫一個文件來導入該驗證碼就可以了,然后從session里面來得到它的值,看如下代碼:

<html>	<form action = "" method = "post">	<input type="text" name = "code" />	@@##@@	<button id = "change">更換</button><br />	<input type = "submit" value = "確定" />	</form> 	<script type="text/javascript"> 		document.getElementById("change").addEventListener("click",change); 		function change(){ 			//之所以加這個隨機數(shù)是為了兼容IE瀏覽器 			document.getElementById("code").src ="ver.php?"+Math.random(); 		} 	</script></html><?phpsession_start();//一定要等post數(shù)據(jù)提交了在判斷,//否則一開始就會顯示信息if(isset($_POST['code'])){	if($_POST['code'] == $_SESSION['code']){		echo "驗證碼正確";	}else{		echo "驗證碼錯誤";	}}
登錄后復制

? ?這里使用了部分Javascript,如果讀者不熟悉Javascript,那么大可以跳過去,下面是運行效果截圖:

辛星和您用更簡略的方式去實現(xiàn)PHP中的驗證碼

看,當然,真正的工程要復雜的多,這里給出的是一個示例程序,希望我們一同進步。。



1樓u013420395昨天 07:24
PHP速學教程(入門到精通)
PHP速學教程(入門到精通)

PHP怎么學習?PHP怎么入門?PHP在哪學?PHP怎么學才快?不用擔心,這里為大家提供了PHP速學教程(入門到精通),有需要的小伙伴保存下載就能學習啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關(guān)注服務號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號