検索
ホームページバックエンド開発PHPチュートリアルThinkPHP フレームワーク プロジェクト開発トピック - 自動検証

ThinkPHP フレームワーク プロジェクト開発トピック -- 自動検証

WEBプロジェクトの開発では、ユーザー登録、ニュース追加、商品管理など、プロジェクトのどのモジュールにもデータを追加する機能があり、フォームを利用してデータの送信やデータの追加を行います。フロントエンドユーザーであってもバックエンド管理者であっても、無効なデータや間違ったデータの入力は避けられないため、プロジェクトではフォームデータの検証が欠かせません。したがって、Web プロジェクトに参加したり、独自に開発したりしたことがある場合は、データを追加するときに、ユーザー名が存在するかどうか、検証コードが正しいかどうか、パスワードが一貫して入力されているかどうか、など、多くのデータ検証を必ず行うことになるでしょう。年齢が数字などの場合、データベースの大量検索や正規表現の記述などの問題は誰にとっても悩みの種です。

ThinkPHP には、モデルのビジネス ルール検証を完了するためのデータ オブジェクトの自動検証および自動完了機能が組み込まれています。ほとんどの場合、データ オブジェクトは、によって送信された $_POST データによって作成されます。形状。システムの自動検証機能を使用する必要がある場合は、Model クラスに $_validate 属性を定義するだけで済みます。

$_validate 属性の検証要素形式:

配列 (検証フィールド、検証ルール、エラープロンプト、検証条件、追加ルール、検証時間)

*検証フィールド: フォームフィールド名 注: このフィールドは必ずしもデータベースフィールドである必要はありませんが、確認パスワードや検証コードなどのフォームの補助フィールドである場合もあります。

*検証ルール: 検証対象のルールは、追加のルールと組み合わせる必要がある場合があります。

組み込みの検証ルール - 必須フィールド、電子メール アドレス、URL アドレス、通貨、数値などの検証ルールは直接使用できます。注: 他の検証ルールがある場合は、独自のメソッド

を作成する必要があります。

*プロンプト メッセージ: 検証失敗のプロンプト メッセージ。

検証条件:

0 または Model::EXISTS_TO_VAILIDATE -- フィールドが存在するかどうかを検証します (デフォルト)

1 または Model::MUST_TO_VALIDATE -- 検証する必要があります

2 または Model::VALUE_TO_VAILIDATE -- 値が空でないことを確認します

追加ルール: 検証ルールと一緒に使用されます

正規表現は検証に正規表現を使用し、以前に定義された検証ルールが正規表現 (デフォルト) であることを示します

関数は関数検証を使用します。前に定義した検証ルールは関数名です。注: システム関数またはカスタム関数

コールバックはメソッド検証を使用します。前に定義した検証ルールは、現在の Model クラスのメソッドです。注: カスタム メソッド

confirm は、フォーム内の 2 つのフィールドが同じであるかどうかを検証します。前に定義した検証ルールはフィールド名

です。

equal は、前の検証ルール

で定義された特定の値と等しいかどうかを検証します。

in 特定の範囲内にあるかどうかを検証します 注: 前に定義した検証ルールは配列

である必要があります

unique システムはフィールドの現在の値に基づいてデータベースにクエリを実行し、同じ値が存在するかどうかを判断します。 注: データベースは

として要求されます。

検証時間:

1 または Model::MODEL_INSERT -- データを追加するときに検証します

2 または Model::MODEL_UPDATE -- データ編集時に検証

3 または Model::MODEL_BOTH -- すべての場合に検証します (デフォルト)

$_validate 属性に慣れたら、例を使用して、特定のデータを検証するときに検証要素を記述する方法を分析する必要があります。

ThinkPHP を学習したことがある方は、マニュアルで自動検証の例をいくつか見たことがあるはずです。ここでは、一般的に使用される例のほとんどを、誰もが学習して使用できるようにまとめます。ここでは言及されていませんが、データの自動検証のすべての方法を改善するためにブレインストーミングを行うことができます。これは継続的に更新されます。

例:

protected $_validate = array(

array('username','require','Username is required!'), // データが空かどうか 注: デフォルトでは、すべての追加と変更が検証されます

array('username','','Username selected!',0,'unique',1), // ユーザー名フィールドを追加するときに、そのフィールドが一意であるかどうかを検証します

array('password','checkPwd','パスワード形式が正しくありません',0,'function'), // パスワード形式は chenkPwd メソッドを使用してカスタマイズできます

array('repassword','password','confirm passwd is unavailable',0,'confirm'), // 確認用パスワードがパスワードと一致するかどうかを検証します

array('sex','array(0,1,2)','性別は 0,1,2',0,'in' である必要があります), // データが範囲内にあるかどうかを確認します範囲

array('age','number','年齢は数値である必要があります'), // データが数値であるかどうかを検証します

array('email','email','メールの形式が正しくありません'), // 組み込みの定期的な確認メール

array('email','/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+ )*$/','メールの形式が間違っています), // カスタマイズされた定期検証データ

array('mypage','url','個人 URL 形式が正しくありません'), // 組み込みの通常の検証 URL アドレス

array('verify','****','検証コードが正しくありません',0,'equal'), // データが特定の値と等しいかどうかを検証します 注: *** * ランダムな確認コード

にすることができます

array('salary','currency','給与検証が正しくありません','0'), // 組み込みの検証通貨データ

);

ThinkPHP の自動検証機能は、ほぼすべてのデータ検証ニーズを満たすことができるため、ThinkPHP を使用してプロジェクトにデータを追加および検証する場合、自動検証と自動補完を使用することでデータ検証について心配する必要はありません。面倒な質問。オートコンプリート機能については次回説明とまとめを行い、ThinkPHPプロジェクトモジュールの制作やプロジェクト例を順次公開していきますのでよろしくお願いいたします。

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

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHP:データベースとサーバー側のロジックの処理PHP:データベースとサーバー側のロジックの処理Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPおよびPython:コードの例と比較PHPおよびPython:コードの例と比較Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

アクション中のPHP:実際の例とアプリケーションアクション中のPHP:実際の例とアプリケーションApr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:インタラクティブなWebコンテンツを簡単に作成しますPHP:インタラクティブなWebコンテンツを簡単に作成しますApr 14, 2025 am 12:15 AM

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPython:2つの一般的なプログラミング言語を比較しますPHPとPython:2つの一般的なプログラミング言語を比較しますApr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの永続的な関連性:それはまだ生きていますか?PHPの永続的な関連性:それはまだ生きていますか?Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、