ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP フォームの自動検証の例、thinkPHP フォームの例_PHP チュートリアル

ThinkPHP フォームの自動検証の例、thinkPHP フォームの例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:17:17757ブラウズ

ThinkPHP フォーム自動検証の例、thinkPHP フォームの例

この記事の例では、ThinkPHP フォームの自動検証の実装方法を説明します。参考のためにみんなで共有してください。具体的な方法は以下の通りです

このサンプル コードは TP 3.2 フレームワークを使用して実装されています。具体的なコードは次のとおりです:

コードをコピーします コードは次のとおりです:
public function add_post(){
//検証ルール
$rule=array(
array('name','require','名前を入力してください',1),//名前は確認する必要があります
);

$m=M('ユーザー');

//名前、性別、連絡先データをモデルに取得し、検証します
If(!$m->フィールド('名前,性別,連絡先')->検証($ルール)->作成())
$this->error($m->getError());

$result=$m->add();

if(!$result)
$this->error('追加に失敗しました');

$this->success('正常に追加されました',U('dir'));
}

検証ルールをモデルに書き込むこともできますが、作者はそれが少し面倒だと感じています。第一に、ページごとに検証方法が異なる場合があります。第二に、add_post イベントのコードを見ると、それがわかります。検証データを一目で理解できるので、その方法をまとめました。

この記事が皆様の ThinkPHP プログラム開発に役立つことを願っています。

thinkphpの自動検証の問題

私が書いた例を示しましょう:
//フォーム検証
protected $_validate=array(
//array('検証フィールド','検証ルール','エラープロンプト',検証条件,追加ルール,検証時間)
array('uname','require','ユーザー名は確認する必要があります!',1,'regex',3),
//array('username','','ユーザー名はすでに存在します',1, ' unique',1),
array('pwd','require','パスワードは必ず入力してください!'),

array('pwd','checkPwd','パスワードは 6 文字以上でなければなりませんlong',1, 'callback'),
);

function checkPwd(){
$password=$_POST['pwd'];
if(strlen($password)>=6){
return true;
}else {
return false;
}
}
//フォームマッピング
protected $_map=array(
'uname'=>'ユーザー名',
'pwd'=>'パスワード',
);
//オートコンプリート関数
protected $_auto=array(
//array(fill field, fill content, fillcondition,Additional rules) Fill 条件: 1, insert 2, update 3, all
array('reg_date','getDate' ,1, 'callback'),
array('password','md5',3,'function'),
);
function getDate(){
return date('Y-m-d H:i:s');
}

thinkphp の自動検証で次のエラー メッセージが表示されます: _TOKEN_ERROR_ とはどういう意味ですか?

ThinkPHP の新しいバージョンには、フォーム トークン検証機能が組み込まれており、フォームのリモート送信やその他のセキュリティ保護を効果的に防止できます。

フォーム トークン検証に関連する構成パラメーターは次のとおりです: 'TOKEN_ON'=>true, // トークン検証を有効にするかどうか 'TOKEN_NAME'=>'__hash__', // トークン検証用のフォームの非表示フィールド名 'TOKEN_TYPE' = >'md5', //デフォルトのトークン ハッシュ検証ルールは MD5 です。フォーム トークン検証機能がオンになっている場合、システムはフォームのテンプレート ファイルに TOKEN_NAME という名前の隠しフィールドを自動的に生成します。その値は It です。 TOKEN_TYPE モードで生成されたハッシュ文字列で、フォームの自動トークン検証を実装するために使用されます。自動生成された隠しフィールドはフォーム終了マークの前に配置されます。隠しフィールドの位置を制御したい場合は、フォーム ページにマークを手動で追加すると、テンプレートの出力時にシステムが自動的に置き換えます。フォームのトークン検証がオンになっており、個々のフォームでトークン検証機能を使用する必要がない場合は、フォーム ページに {__NOTOKEN__} を追加すると、システムは現在のフォームのトークン検証を無視します。ページ上に複数のフォームがある場合は、ID を追加し、トークン検証が必要なフォームが 1 つだけであることを確認することをお勧めします。モデル クラスは、データ オブジェクトの作成時にフォーム トークン検証を自動的に実行します。データ オブジェクトの作成に create メソッドを使用しない場合は、モデルの autoCheckToken メソッドを手動で呼び出してフォーム トークン検証を実行する必要があります。 false が返された場合は、フォーム トークン検証エラーを示します。例: $User = M("User"); // ユーザー オブジェクトをインスタンス化します // トークン検証を手動で実行します if (!$User->autoCheckToken($_POST)){// トークン検証エラー

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/893425.html技術記事 ThinkPHP フォーム自動検証例、thinkphp フォーム例 この記事では、ThinkPHP フォーム自動検証の実装方法について説明します。参考のためにみんなで共有してください。具体的な方法は以下の通りです: この表示は...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。