目次
if(isset($_POST['LoginForm'])){
ホームページ バックエンド開発 PHPチュートリアル Yii フレームワークのフォーム検証に関する質問。 Yiiを知っている人はぜひ見に来てください。

Yii フレームワークのフォーム検証に関する質問。 Yiiを知っている人はぜひ見に来てください。

Jun 23, 2016 pm 01:55 PM
yii 偉大なる神 形状

Yii を使用して簡単な小さなブログを作成しています。バックグラウンドでログイン認証を行うと、バグが発生します。
アカウント番号、パスワード、確認コードを空にすることはできません。
そしてデータベースとも一致しません。テストしましたが、データベース接続に問題はありませんでした。

LoginController.php
<?php
/**
*バックエンドログインコントローラー
*/
class LoginController extends Controller{
/**
*バックエンドログインテンプレート
*/
public function actionIndex(){
$loginForm = new LoginForm();
if(isset($_POST['$LoginForm'])){
$loginForm->attributes = $_POST['LoginForm'];
if($loginForm->validate()){
echo 1;die ;
}
}
$this->render('index',array('loginForm' => $loginForm));

public function events(){
return array(
'captcha' =&gt ; array(
'class' => 'system.web.widgets.captcha.CCaptchaAction',
'height' => 25,
'width' => 80,
'minLength' => 4,
'maxLength' => 4,
'offset' => 3,
'padding' => 1
),
}

これは、User.php
<?php です。 /**
*バックエンドユーザーモデル
*/
class User extends CActiveRecord{
/**
* 必須のメソッド 1、モデルを返す
*/
public static function model($className = __CLASS__){
returnparent::model($className) }

; /**
* 避けられない方法 2 は、テーブル名を返すことです
*/
public function tableName(){
return "{{user}}";
}
}

これは LoginForm.php のメソッドです
public function rules()
{
return array (
// ユーザー名とパスワードは必須です
array('username', 'required', 'message' => 'ユーザー名は空にすることはできません'),
array('password', 'required', 'message' =&gt ; 'パスワードを空にすることはできません'),
// rememberMe はブール値である必要があります
array('rememberMe', 'boolean'),
// パスワードは認証される必要があります
array('password', 'authenticate' ),
//カスタマイズされたエラーメッセージ
array('captcha', 'captcha', 'message' => '認証コードエラー'),
);
}

エラーメッセージを出力するページです。index.php & Lt ; ul ID = "peo" & gt; & lt; li class = "エラー" & gt; PHP エラー ($ ロジックインフォーム) </ul>
<ul id="psd"> <li class="error"><?php echo $form->error($loginForm,'password') ?> ;/li>
</ul>
<li class="error"><?php echo $form->error($loginForm,'captcha' ) ?></li>
</ul>

これはコンポーネントディレクトリ内の UserIdentity.php
/**
* UserIdentity は、ユーザーを識別するために必要なデータを表します。
* 提供された
* データがユーザーを識別できるかどうかを確認する認証メソッドが含まれています。
 */
class UserIdentity extends CUserIdentity
/ **
* ユーザーを認証します。
* 実装例では、ユーザー名とパスワード
* が両方とも「デモ」であるかどうかを確認します。
* 実際のアプリケーションでは、一部の永続的なユーザー ID ストレージ(データベースなど)に対して
* を認証するようにこれを変更する必要があります。
* @return boolean 認証が成功したかどうか。
 */
パブリック関数authenticate()
{
$userInfo = User::model()->find('username = :name', array(':name' => $this->username));
if($userInfo == NULL){
$this->errorCode = self::ERROR_USERNAME_INVALID;
return false; }
if($userInfo->password !== md5($this->password)){
$this->errorCode = self ::ERROR_PASSWORD_INVALID;
return false;
}
$this->errorCode = self::ERROR_NONE;
return true;


正確に何が問題でしたか?全然。
エラーメッセージが書かれてもプロンプトは出ず、ログイン認証も行われないのが現状です。確認コードを置き換えることができることを除けば、完全に静的ページと同じです。


ディスカッションに返信 (解決策)
if(isset($_POST['$LoginForm'])){ ? ? ?

if(isset($_POST['LoginForm'])){


if(isset($_POST['$LoginForm'])){ ですか? ? ?

それは if(isset($_POST['LoginForm'])){


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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPフォーム送信後のページジャンプを実装する方法 PHPフォーム送信後のページジャンプを実装する方法 Aug 12, 2023 am 11:30 AM

PHPフォーム送信後のページジャンプを実装する方法

PHP フォームでユーザー権限管理を処理する方法 PHP フォームでユーザー権限管理を処理する方法 Aug 10, 2023 pm 01:06 PM

PHP フォームでユーザー権限管理を処理する方法

JavaScript を使用してフォームの入力ボックスの内容のリアルタイム検証を実装するにはどうすればよいですか? JavaScript を使用してフォームの入力ボックスの内容のリアルタイム検証を実装するにはどうすればよいですか? Oct 18, 2023 am 08:47 AM

JavaScript を使用してフォームの入力ボックスの内容のリアルタイム検証を実装するにはどうすればよいですか?

JavaScript を使用してフォームの入力ボックスの内容の自動プロンプト機能を実現するにはどうすればよいですか? JavaScript を使用してフォームの入力ボックスの内容の自動プロンプト機能を実現するにはどうすればよいですか? Oct 20, 2023 pm 04:01 PM

JavaScript を使用してフォームの入力ボックスの内容の自動プロンプト機能を実現するにはどうすればよいですか?

PHP フォーム処理: フォーム データのクエリとフィルタリング PHP フォーム処理: フォーム データのクエリとフィルタリング Aug 07, 2023 pm 06:17 PM

PHP フォーム処理: フォーム データのクエリとフィルタリング

HTML、CSS、jQueryを使ってフォームの自動保存という高度な機能を実現する方法 HTML、CSS、jQueryを使ってフォームの自動保存という高度な機能を実現する方法 Oct 28, 2023 am 08:20 AM

HTML、CSS、jQueryを使ってフォームの自動保存という高度な機能を実現する方法

HTML、CSS、jQuery を使用してフローティング プロンプトを持つフォームを作成する方法 HTML、CSS、jQuery を使用してフローティング プロンプトを持つフォームを作成する方法 Oct 25, 2023 am 10:48 AM

HTML、CSS、jQuery を使用してフローティング プロンプトを持つフォームを作成する方法

Laravel フォームクラスを使用するためのヒント: 効率を向上させる方法 Laravel フォームクラスを使用するためのヒント: 効率を向上させる方法 Mar 11, 2024 pm 12:51 PM

Laravel フォームクラスを使用するためのヒント: 効率を向上させる方法

See all articles