有关Yii框架表单验证的问题。懂Yii的大神请进来看看吧.
我在用Yii做一个简单的小blog,在做后台登陆验证的时候,出现bug,
不提示登陆错误信息,我做的是账号,密码,验证码不能为空。
而且也不与数据库匹配。我已经测试过,数据库连接完全没有问题。
LoginController.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 actions(){
return array(
'captcha' => array(
'class' => 'system.web.widgets.captcha.CCaptchaAction',
'height' => 25,
'width' => 80,
'minLength' => 4,
'maxLength' => 4,
'offset' => 3,
'padding' => 1
),
);
}
}
这个是model,User.php
/**
* 后台用户模型
*/
class User extends CActiveRecord{
/**
* 必不可缺的方法一,返回模型
*/
public static function model($className = __CLASS__){
return parent::model($className);
}
/**
* 必不可却的方法二,返回表名
*/
public function tableName(){
return "{{user}}";
}
}
这个是LoginForm.php中的一个方法
public function rules()
{
return array(
// username and password are required
array('username', 'required', 'message' => '用户名不能为空'),
array('password', 'required', 'message' => '密码不能为空'),
// rememberMe needs to be a boolean
array('rememberMe', 'boolean'),
// password needs to be authenticated
array('password', 'authenticate'),
//自定义错误信息
array('captcha', 'captcha', 'message' => '验证码错误'),
);
}
这个是输出错误信息的页面 index.php
- error($loginForm,'username') ?>
- error($loginForm,'password') ?>
- error($loginForm,'captcha') ?>
这个是components目录中的 UserIdentity.php
/**
* UserIdentity represents the data needed to identity a user.
* It contains the authentication method that checks if the provided
* data can identity the user.
*/
class UserIdentity extends CUserIdentity
{
/**
* Authenticates a user.
* The example implementation makes sure if the username and password
* are both 'demo'.
* In practical applications, this should be changed to authenticate
* against some persistent user identity storage (e.g. database).
* @return boolean whether authentication succeeds.
*/
public function 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'])){ 吧
对对对,没错的。谢谢,谢谢...
我都不知道那个$是怎么写上去的...

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

如何實現PHP表單提交後的頁面跳轉【簡介】在Web開發中,表單的提交是一項常見的功能需求。當使用者填寫完表單並點擊提交按鈕後,通常需要將表單資料傳送至伺服器進行處理,並在處理完後將使用者重新導向至另一個頁面。本文將介紹如何使用PHP來實現表單提交後的頁面跳躍。 【步驟一:HTML表單】首先,我們需要在HTML頁面中撰寫一個包含表單的頁面,以便使用者填寫需要提交的資料。

如何使用JavaScript實作表單的輸入框內容自動提示功能?簡介:表單的輸入框內容自動提示功能在網頁應用程式中非常常見,它可以幫助使用者快速輸入正確的內容。本文將介紹如何使用JavaScript實作此功能,並提供具體的程式碼範例。在建立HTML結構首先,我們需要建立一個包含輸入框和自動提示清單的HTML結構。可以使用以下程式碼:<!DOCTYP

如何處理PHP表單中的使用者權限管理隨著Web應用程式的不斷發展,使用者權限管理是重要的功能之一。使用者權限管理可以控制使用者在應用程式中的操作權限,確保資料的安全性和合法性。在PHP表單中,使用者權限管理可以透過一些簡單的程式碼來實現。本文將介紹如何處理PHP表單中的使用者權限管理,並給予對應的程式碼範例。一、使用者角色的定義與管理首先,將使用者角色定義與管理是使用者權

如何使用JavaScript實作表單的輸入框內容即時校驗功能?在許多網頁應用程式中,表單是使用者與系統之間最常用的互動方式。然而,使用者輸入的內容往往需要進行有效性校驗,以確保資料的準確性和完整性。在這篇文章中,我們將學習如何使用JavaScript實作表單的輸入框內容即時校驗功能,並提供具體的程式碼範例。在建立表單首先,我們需要在HTML中建立一個簡單的表

如何使用HTML、CSS和jQuery實現表單自動保存的高級功能在現代網頁應用中,表單是非常常見的元素之一。當使用者在輸入表單資料時,如何能夠實現自動儲存的功能,不僅可以提高使用者的使用體驗,也能確保資料的安全性。本文將介紹如何使用HTML、CSS和jQuery來實作表單的自動儲存功能,並附上具體的程式碼範例。一、HTML表單的結構建構我們先來建立一個簡單的HT

PHP表單處理:表單資料查詢與篩選引言在網路開發中,表單是一種重要的互動方式,使用者可以透過表單向伺服器提交資料並進行進一步的處理。本文將介紹如何使用PHP處理表單資料的查詢與篩選功能。表單的設計與提交首先,我們需要設計一個包含查詢與篩選功能的表單。常見的表單元素包括輸入框、下拉清單、單選框、複選框等,根據具體需求進行設計。用戶在提交表單時,會將資料以POS

在編寫網站或應用程式時,表單是不可或缺的一部分。 Laravel作為一個流行的PHP框架,提供了豐富而強大的表單類,使得表單處理變得更加簡單和高效。本文將介紹一些Laravel表單類別的使用技巧,幫助你提升開發效率。下面透過具體的程式碼範例來詳細講解。建立表單要在Laravel中建立表單,首先需要在檢視中編寫對應的HTML表單。在處理表單時,可以使用Laravel

隨著雲端運算技術的不斷發展,資料的備份已經成為了每個企業必須要做的事情。在這樣的背景下,開發一款高可用的雲端備份系統尤其重要。而PHP框架Yii是一款功能強大的框架,可以幫助開發者快速建立高效能的Web應用程式。以下將介紹如何使用Yii框架開發一款高可用的雲端備份系統。設計資料庫模型在Yii框架中,資料庫模型是非常重要的一環。因為資料備份系統需要用到很多的表和關
