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['code'] = $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 "验证码错误"; }}
もちろん、実際のプロジェクトは次のとおりです。はるかに複雑です。出力はサンプル プログラムです。一緒に進歩できることを願っています。 。