您的位置:首页 > 编程语言 > PHP开发

YII 框架 第七天 登陆

2013-09-19 15:08 309 查看
public function actionLogin()
{
$user_login = new LoginForm(); //LoginForm 是 YII自带的一个文件 需要配置
if(isset($_POST['LoginForm']))
{
$user_login->attributes=$_POST['LoginForm'];
if($user_login->validate() && $user_login->login()) //validate 验证  login 设置session
{
$this->redirect('index.php');
}

}
$this->render('login',array('user_login'=>$user_login));
}


LoginForm 文件

public function authenticate($attribute,$params)
{
if(!$this->hasErrors())
{
$this->_identity=new UserIdentity($this->username,$this->password); //需要到 UserIdentity中配置
if(!$this->_identity->authenticate())
$this->addError('password','用户名或密码错误');
}
}


在 components 中 UserIdentity

public function authenticate()
{
$user_model = User::model()->find('username=:name',array(':name'=>$this->username));

if($user_model === NULL)
$this->errorCode=self::ERROR_USERNAME_INVALID;
elseif($user_model->password !== $this->password)
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
$this->errorCode=self::ERROR_NONE;
return !$this->errorCode;
}


下面 就 是简单的了

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'),
);
}

/**
* Declares attribute labels.
*/
public function attributeLabels()
{
return array(
'rememberMe'=>'记住我',
'username'=>'用户名',
'password'=>'密码',
);
}

/**
* Authenticates the password.
* This is the 'authenticate' validator as declared in rules().
*/
public function authenticate($attribute,$params)
{
if(!$this->hasErrors())
{
$this->_identity=new UserIdentity($this->username,$this->password); //需要到 UserIdentity中配置
if(!$this->_identity->authenticate())
$this->addError('password','用户名或密码错误');
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php学习记录 yii 框架