ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP3.2.3 検証コードの表示、更新、検証

ThinkPHP3.2.3 検証コードの表示、更新、検証

不言
不言オリジナル
2018-06-08 10:40:001548ブラウズ

この記事では主に ThinkPHP3.2.3 の検証コードの表示、更新、検証について紹介します。興味のある方は参考にしてください。

ThinkPHP3.2.3 検証コードの表示、更新、検証は次のとおりです。

検証コードの表示

最初に作成しますHome/Controller PublicController

<?php
namespace Home\Controller;

use Think\Controller;
use Think\Verify;

class PublicController extends Controller
{

  /* 生成验证码 */
  public function verify()
  {
    $config = [
      &#39;fontSize&#39; => 19, // 验证码字体大小
      &#39;length&#39; => 4, // 验证码位数
      &#39;imageH&#39; => 34
    ];
    $Verify = new Verify($config);
    $Verify->entry();
  }

  /* 验证码校验 */
  public function check_verify($code, $id = &#39;&#39;)
  {
    $verify = new \Think\Verify();
    $res = $verify->check($code, $id);
    $this->ajaxReturn($res, &#39;json&#39;);
  }
}

verify 関数の下のパブリック コントローラーは検証コードの生成に使用され、config は検証を表示するための属性の構成に使用されます。コード。この属性の設定可能な項目については、Thinkphp/Library/Think/Verify.class.php ファイルを参照できますが、ここでは説明しません。

check_verify 関数は、検証コードが正しいことを検証するために使用されます。テンプレートは、ユーザーが入力した検証コードをこの関数に送信し、検証が成功した場合は $res==true を返し、検証が失敗した場合は false を返します。
フロントエンド テンプレート ページのindex.html を作成します

 <p class="">
 <label for="j_verify" class="t">验证码:</label> <input id="j_verify"
 name="j_verify" type="text" class="form-control x in">
 <img id="verify_img" alt="点击更换" title="点击更换"
 src="{:U(&#39;public/verify&#39;,array())}" class="m">
 </p>

Thinkphp の U メソッドを使用して、検証コードを生成する画像を作成します。

クリックして確認コードを更新してください

確認コードを生成する上記のリンクから、ドメイン名 /public/ が確認できます。 verify は検証コードを生成できます。 Thinkphp の検証コード生成メカニズムでは、新しい検証コードを生成する必要がある場合は、リンクの後に変数値を追加するだけです。

public/verify/variable value フォーム URL の実装を検討できます。

$("#verify_img").click(function() {
  var verifyURL = "public/verify";
  var time = new Date().getTime();
  $("#verify_img").attr({
   "src" : verifyURL + "/" + time
  });
});

JS を使用して現在のタイムスタンプを取得し、URL に追加します。

この時点で、検証コードのクリックして更新機能を実装できます。具体的な表現方法はあなた次第です。

検証コードの非同期検証

一部の Web サイトで、検証コードを入力すると入力テキストが表示されるのを見たことがあると思います。プロセス 正しい形式の確認コードを入力するまで、ボックスの後ろにエラーが常に表示されます。次のコードを実行できます:

$("#j_verify").keyup(function() {
  $.post("public/check_verify", {
    code : $("#j_verify").val()
    }, function(data) {
    if (data == true) {
      //验证码输入正确
    } else {
      //验证码输入错误
    }
  });
});

onekeyup を使用します。原理は説明不要ですね!

このようにして、ユーザー名とパスワードを送信する前に確認コードの検証を実行し、フォームが送信された後に再度検証を実行して、ユーザー エクスペリエンスを向上させることができます。

まだ終わっていません:

上記の形式を採用して検証コードを 2 回検証すると、最初の非同期コードが確実に存在します。検証は成功しましたが、フォームを送信すると、検証コードでエラーが表示されます。実際、その理由は依然として Thinkphp の Verify.class.php にあります。

次は、このクラスの初期設定構成です:

protected $config =  array(
    &#39;seKey&#39;   => &#39;ThinkPHP.CN&#39;,  // 验证码加密密钥
    &#39;codeSet&#39;  => &#39;2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY&#39;,       // 验证码字符集合
    &#39;expire&#39;  => 1800,      // 验证码过期时间(s)
    &#39;useZh&#39;   => false,      // 使用中文验证码 
    &#39;zhSet&#39;   => &#39;……此处不粘贴了,太多了!&#39;,       // 中文验证码字符串
    &#39;useImgBg&#39; => false,      // 使用背景图片 
    &#39;fontSize&#39; => 25,       // 验证码字体大小(px)
    &#39;useCurve&#39; => false,      // 是否画混淆曲线
    &#39;useNoise&#39; => false,      // 是否添加杂点  
    &#39;imageH&#39;  => 0,        // 验证码图片高度
    &#39;imageW&#39;  => 0,        // 验证码图片宽度
    &#39;length&#39;  => 5,        // 验证码位数
    &#39;fontttf&#39;  => &#39;&#39;,       // 验证码字体,不设置随机获取
    &#39;bg&#39;    => array(243, 251, 254), // 背景颜色
    &#39;reset&#39;   => true,      // 验证成功后是否重置
    );

最後の属性リセットは、検証が成功した後に検証コードをリセットするかどうかを示すことに注意してください。最初の検証に合格した後、実際には検証コードが無効になったことは誰もが理解していると思いますが、非同期検証を使用したため、ページが更新されず、結果として 2 回目の検証が失敗することになりました。システムが生成するものと同じです。したがって、この二重検証スタイルが気に入った場合は、リセットを false に設定することを検討できます。

さて、今日はThinkphp3.2.3に基づく検証コード問題についてまとめます。実装方法について簡単にお話しましたが、具体的な内容についてはTP公式マニュアルを参照してください。間違いがあればご指摘ください。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

thinkPHP5.0 フレームワークの設定形式、ロード、解析、読み取り方法

thinkPHP の検証 簡単な実装コードのメソッド

以上がThinkPHP3.2.3 検証コードの表示、更新、検証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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