テスト テーブルに登録されたフォームを確認します。
登録前にフォームを確認します。
ユーザー名が空でないことを 2 回確認します。パスワードは一貫している必要があり (同等性検証)、年齢は 18 ~ 50 歳である必要があり (範囲検証)、電子メール形式は定期的な検証である必要があります。
自動検証は、ThinkPHP モデル層によって提供されるデータ検証方法であり、create を使用してデータ オブジェクトを作成するときにデータ検証を自動的に実行できます。
データ検証では、データ型、ビジネスルール、セキュリティ判断などの検証操作を実行できます。
データ検証には 2 つの方法があります:
静的メソッド: モデル クラスの $_validate 属性を使用して検証ルールを定義します。
動的メソッド: モデル クラスの validate メソッドを使用して、自動検証ルールを動的に作成します。
どのような方法を使用する場合でも、検証ルールの定義は統一ルールであり、定義形式は次のとおりです。
array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ...... );
検証フィールド (必須)
検証する必要があるフォーム フィールドの名前。このフィールドは必ずしもデータベース フィールドである必要はありませんが、パスワードや確認コードの確認など、フォームの補助フィールドである場合もあります。 。フィールドに関係のない個別の入力規則がある場合、入力フィールドは任意に設定できます (たとえば、有効期限の規則はフォーム フィールドに関係ありません)。フィールド マッピングが定義されている場合、ここでの検証フィールド名はフォーム フィールドではなく実際のデータ テーブル フィールドである必要があります。
検証ルール (必須)
検証のルールは追加のルールと組み合わせる必要があります。定期的な検証に追加のルールを使用する場合、システムにはいくつかのルールも組み込まれています-in ルール: よく使用される通常の検証ルール (必須フィールド、電子メール アドレス、URL アドレス、通貨、数値など) を検証ルールとして直接使用できます。
プロンプト情報 (必須)
検証失敗後のプロンプト情報の定義に使用されます
検証条件 (オプション)
次の状況が含まれます:
self::EXISTS_VALIDATE または 0、フィールドが存在するかどうかを確認します (デフォルト)
self : :MUST_VALIDATE または 1 検証する必要があります
self::VALUE_VALIDATE または 2 値が空でない場合に検証します
追加ルール (オプション)
#次のルールを含む検証ルールとともに使用します:
- self::MODEL_INSERT または 1 データ追加時に検証
- ##self::MODEL_UPDATE または 2 データ編集時に検証
# #self::MODEL_BOTH または 3 すべてのケースで検証 (デフォルト)
ここでの検証時間に注意する必要があります。この 3 つのケースだけではありません。ビジネスに応じて検証できます。追加の検証時間を追加する必要があります。
検証には、静的検証と動的検証の 2 つの方法があります。
モデルの自動検証ルールをモデル クラスで事前定義します (これを静的定義と呼びます)。 検証する場合は、テスト テーブルのモデルに検証条件を追加します。新しい testModel.class.php を作成し、次のようにモデル クラスに $_validate 属性を定義します。検証ルールを定義します。これは、create メソッドを使用してデータ オブジェクトを作成するときに自動的に呼び出すことができます:
<?php namespace Home\Model; use Think\Model; class testModel extends Model { //静态验证 protected $_validate = array( array('uid','require','用户名不能为空'), array('pwd','require','密码不能为空'), array('repwd','pwd','确认密码不正确',1,'confirm'), array('age','18,50','年龄必须在18-50岁之间',1,'between'), array('email','email','邮箱格式不正确'), ); }
テンプレート ZhuCe.html:
<?php namespace Home\Controller; use Home\Controller\CheckController; class ZhuCeController extends CheckController { function ZhuCe() { //静态验证,不能在后面直接显示,必须全部通过验证才能注册 $cw = ""; if(!empty($_GET)) { $cw = $_GET["cw"]; } if(empty($_POST)) { $this->assign("error",$cw); $this->display(); } else { $model = new \Home\Model\testModel(); //$model = D("test"); //动态验证可以用D方法 if(!$model->create()) { $e = $model->getError(); $url = "ZhuCe/cw/{$e}"; $this->error("注册失败!",$url,1); } else { $model->add(); }
ZhuCe メソッドをリクエストします:
2. 動的検証
動的検証を採用すると、同じモデルを運用する際に、状況に応じて異なる検証ルールを使用することができ、より柔軟になります。上記のようなさまざまなニーズ 静的検証方法は次のように変更できます。
<body> <form action="__ACTION__" method="post"> <div>用户名:<input type="text" name="uid" id="uid" /> </div><br /> <div>密码:<input type="text" name="pwd" id="pwd" /></div><br /> <div>确认密码:<input type="text" name="repwd" id="repwd" /> </div><br /> <div>年龄:<input type="text" name="age" id="age" /> </div><br /> <div>邮箱:<input type="text" name="email" id="email" /> </div><br /> <div>姓名:<input type="text" name="name" /></div><br /> <div><{$error}></div> <!--显示错误信息--> <input type="submit" value="注册" /> </form>
また、フォームの背後に直接エラー メッセージを表示することもできますが、これには ajax の使用が必要です。例として、ユーザー名が空でないことを確認します。 テンプレート ZhuCe.html 内:
<?php namespace Home\Controller; use Home\Controller\CheckController; class ZhuCeController extends CheckController { function ZhuCe() { if(empty($_POST)) { $this->display(); } else { //$model = new \Home\Model\testModel(); $model = D("test"); //动态验证可以用D方法 //动态验证 $rules = array( array('uid','require','用户名不能为空') ); //调用validate()加入验证规则 $r = $model->validate($rules)->create();//若验证失败返回false,成功返回注册的test表数组信息 //var_dump($r); if(!$r) { echo $model->getError(); //若验证失败则输出错误信息 } else { $model->add(); } } }
ZhuCe コントローラーに別の Yhm メソッドを作成します:
<script ></script> </head> <body> <form action="__ACTION__" method="post"> <div>用户名: <input type="text" name="uid" id="uid" /> <span id="ts"></span></div><br /> <div>密码: <input type="text" name="pwd" id="pwd" /> <span id="pts"></span></div><br /> <div>确认密码:<input type="text" name="repwd" id="repwd" /> <span id="rpts"></span></div><br /> <div>年龄: <input type="text" name="age" id="age" /> <span id="nts"></span></div><br /> <div>邮箱: <input type="text" name="email" id="email" /> <span id="ets"></span></div><br /> <div>姓名: <input type="text" name="name" /></div><br /> <!--<div><{$error}></div> --> <!--显示错误信息--> <input type="submit" value="注册" /> </form> </body> </html> <script type="text/javascript"> $(document).ready(function(e) { $("#uid").blur(function(){ var uid = $(this).val(); $.ajax({ url:"__CONTROLLER__/Yhm", <!--提交到方法,而不是页面--> data:{uid:uid}, <!--因为做的是表单验证,所以提交时要与表单name值一致,相当于提交表单 --> type:"POST", dataType:"TEXT", <!--返回数据类型要与ajaxReturn中的参数对应,TEXT对应eval--> success: function(data){ //alert(data); var str = ""; if(data.trim()=="OK") { str = "<span style='color:green'>"+data+"</span>"; } else { str = "<span style='color:red'>"+data+"</span>"; } $("#ts").html(str); } }); })
Request ZhuCe メソッド :
他の検証メソッドも同様で、対応するデータを対応するメソッドに送信し、対応する検証ルールを使用します。 推奨チュートリアル:「TP5」
以上がThinkPHP フレームワークのフォーム検証の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 中国語版
中国語版、とても使いやすい
