ホームページ  >  記事  >  バックエンド開発  >  Xin Xing とあなたは、より簡単な方法で PHP に検証コードを実装します

Xin Xing とあなたは、より簡単な方法で PHP に検証コードを実装します

WBOY
WBOYオリジナル
2016-06-13 12:03:13862ブラウズ

Xin Xing さんは、PHP で検証コードを実装する簡単な方法を使用しています

正直に言うと、検証コードはよく知られていると思います。PHP で検索してください。検証コード クラスは次のとおりです。単に膨大な量のデータなので、今日は独自の検証コードを実装しますが、それは比較的単純です。これが、より簡単な方法で検証コードを実装することについて述べたことです。

一般に、最初のステップは検証コードを実装することです。最初にこの検証コードを実装する方法を見てみましょう。ここでは、gd ライブラリの知識を使用する必要があります。次のコード例を参照してください:

<?php//首先要开启sessionsession_start();//说明这是一张图片header("Content-type:image/png");//用来动态生成的数字和字母组合$str = "3,4,5,6,7,8,9,a,b,c,d,e,f,g";//转化为数组$list = explode(",",$str);//得到该数组的下标的最大值$max = count($list) - 1;//用于表示该验证码$verify = "";//生成验证码字符串for($i = 0; $i <5;$i ++){	$rand = mt_rand(0,$max);	$verify .= $list[$rand];}//写入session$_SESSION[&#39;code&#39;] = $verify;//生成一个58x28的图片$im = imagecreate(58,28);//产生黑色$black = imagecolorallocate($im,0,0,0);//产生白色$white = imagecolorallocate($im,255,255,255);//先用白色背景把图片刷成白色imagefill($im,0,0,$white);//然后把字符串写到图片上去imagestring($im,5,10,8,$verify,$black);//生成png图片,并且显示到屏幕上imagepng($im);//销毁该图片imagedestroy($im);

ちなみに、描画の基本的な手順は次のとおりです。 image、imagecreate関数を使用し、次にimagecolorallocateを使用して色を調整し、次にさまざまなimagexxxを使用して画像を描画し、最後にimagexxxを使用してさまざまなスタイルの画像を生成し、最後にimagedestroyを使用して画像を破棄するのとほぼ同じプロセスです。この中で注目すべきは、最初のパラメータが絵画の画像を表すことです。2 番目のパラメータが 0,1,2,3,4,5 である場合、これは言及されません。これは組み込みのフォントを意味し、3 番目のパラメータは絵画の左上隅の x 座標を表し、4 番目のパラメータは絵画の左上隅の y 座標を表し、5 番目のパラメータは使用する色です。ここで描画するために黒。

生成した画像がどのようなものかを見てみましょう:


ファイルは次のとおりです。次のコードを参照してください。

<html>	<form action = "" method = "post">	<input type="text" name = "code" />	<img id = "code" src ="ver.php" />	<button id = "change">更换</button><br />	<input type = "submit" value = "确定" />	</form> 	<script type="text/javascript"> 		document.getElementById("change").addEventListener("click",change); 		function change(){ 			//之所以加这个随机数是为了兼容IE浏览器 			document.getElementById("code").src ="ver.php?"+Math.random(); 		} 	</script></html><?phpsession_start();//一定要等post数据提交了在判断,//否则一开始就会显示信息if(isset($_POST['code'])){	if($_POST['code'] == $_SESSION['code']){		echo "验证码正确";	}else{		echo "验证码错误";	}}

ここでは Javascript の一部が使用されています。読者は Javascript に慣れていないので、スキップしても構いません。以下は実行中のエフェクトのスクリーンショットです:


もちろん、実際のプロジェクトは次のとおりです。はるかに複雑です。出力はサンプル プログラムです。一緒に進歩できることを願っています。 。



1Fu013420395昨日 07:24
ああ
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。