以下は、ThinkPHP のチュートリアル コラムで、ThinkPHP フレームワークの検証コードを紹介します。
Think\Verify クラスは、検証コードの生成および検証機能をサポートできます。
次は、確認コードを生成する最も簡単な方法です:
$Verify = new \Think\Verify();$Verify->entry();
上記のコードは、以下に示すように、デフォルトの確認コード イメージを生成して出力します。
生成された確認コード情報はセッションに保存され、含まれるデータは次のとおりです:
array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')
1 ページで複数の確認コードを生成する必要がある場合は、エントリメソッドは識別された情報を渡す必要があります。
生成された検証コードに関連するパラメータを設定して、さまざまな表示効果を実現できます。これらのパラメータには次のものが含まれます:
Parameter | Description |
---|---|
expire | 認証コードの有効期間(秒) |
useImgBg | 背景画像を使用するかどうか、デフォルトは false |
検証コードのフォント サイズ (ピクセル) デフォルトは 25 | |
混同曲線を使用するかどうか、デフォルトは true | |
デフォルトでノイズ ポイントを追加するかどうかは true | |
検証コード幅自動計算のために 0 に設定されます | |
自動計算のために検証コードの高さを 0 に設定します | |
認証コードの数字 | |
指定された認証コードのフォントはデフォルトでランダム取得になります | |
中国語の認証コードを使用するかどうか | |
認証コードの背景色の rgb 配列設定 (array(243, 251, 254) など) | |
検証コードの暗号化キー | |
検証コード文字セット 3.2.1 新規追加 | |
検証コード文字セット (中国語) 3.2.1 追加 |
Default パラメータ設定:
パラメータ設定には 2 つの方法があります。 受信パラメータをインスタンス化します: または、次のような動的設定を使用します: Verification code fontデフォルトでは、検証コードのフォントは、
ThinkPHP/Library/Think/Verify/ttfs/ ディレクトリ内のフォント ファイルでランダムに使用されます。検証コード。例:
$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf$Verify->fontttf = '5.ttf';$Verify->entry();
$Verify = new \Think\Verify();// 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片$Verify->useImgBg = true;$Verify->entry();
$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/zhttfs/simhei.ttf$Verify->useZh = true;$Verify->entry();
check メソッドを使用して、検証コードの入力が正しいかどうかを確認できます。たとえば、次のようになります。は、検証コード検出用のカプセル化された関数です。 :
// 检测输入的验证码是否正确,$code为用户输入的验证码字符串function check_verify($code, $id = ''){$verify = new \Think\Verify();return $verify->check($code, $id); }
<?php namespace Home\Controller;use Think\Controller;class LoginController extends Controller { function Login() { if(empty($_POST)) { $this->display(); } else { $code = $_POST["yzm"]; $verify = new \Think\Verify(); if($verify->check($code,2)) //code是用户输入的值 ,2是验证码检测标示,必须与生成的验证码标示相同才能验证 { if($_POST["uid"]!="" && $_POST["pwd"]!="") { $model = D("Users"); $uid = $_POST["uid"]; $pwd = $_POST["pwd"]; $attr = $model->field("Pwd")->find($uid); //var_dump($attr); if($pwd==$attr["pwd"]) { session("uid",$uid); // 跳转页面之前将$uid存入session $this->success("登录成功!","Main"); } else { $this->error("登录失败!"); } } else { $this->error("用户名或者密码不能为空!"); } } else { $this->error("验证码不正确!"); } } }//生成验证码的操作方法 function yzm() { $config = array( 'fontSize' => 30, // 验证码字体大小 'length' => 4, // 验证码位数 'useCurve' => true, // 是否画混淆曲线 'useNoise' => true, // 关闭验证码杂点 'expire' => 60, // 验证码有效期(秒) 'useImgBg' => false, // 使用背景图片 'useZh' => true, // 使用中文验证码 'imageW' => 240, // 验证码宽度 'imageH' => 60, // 验证码高度 'fontttf' => 'simhei.ttf', // 验证码字体 ); $Verify = new \Think\Verify($config); $Verify->entry(2);//参数是生成验证码的标示,适用于同一个页面有多个验证码的时候,生成验证码的标示必须与检测验证码的标示相同,否则验证码不正确 }?>
以上がThinkPHPフレームワークの検証コードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。