Yii数据库用户信息登录

原本的Yii里面只有admin和demo账号,怎么可以使用数据库里面的Username和Password登陆呢?

数据库:例如DatabaseName。

数据表:例如TableName,表里面有username和password等相关信息。

Yii:

1.在main.php开启‘db‘=array(…………),开启数据库连接(略)

2.生成TableName的model。

3.在UserIdentity.php中改变原本的账号审查。

代码如下:

 

<?php
class UserIdentity extends CUserIdentity
{
parivate $_id;// 定义一个私有变量
public function authenticate(){
$username=strolower($this->username);
$user=User::model()->find(‘LOWER(username)=?‘,array($username));
if($username===null){
$this->errorCode=self::ERROR_USERNAME_INVALID;
}else if(!$username->validatePassword($this->password)){
$this->errorCode=self::ERROR_PASSWORD_INVALID;
}
else{
$this->_id=$user->id;
$this->username=$username->username;
$this->errorCode=self::ERROR_NONE;
}
return $this->errorCode===self::ERROR_NONE;
}
public function getId(){
return $this->_id;
}
}

 

4.在User.php中添加一个validatePassword方法。

public function validatePassword($password){
return $this->encrypt($password)===$this->password;
}

5.在User.php中添加一个加密的encrypt加密方法:

public function validatePassword($password){
return $this->encrypt($password)===$this->password;
}

 

PS:UserController中:

‘user‘=array(‘*‘); 任意的用户

‘user‘=array(‘@‘); 注册的用户

‘user‘=array(‘admin‘);指定的用户

 

PS:Yii中create账户信息时候,希望保存在数据库中的密码是md5加密的话:

在User.php中添加一个方法:

public function validatePassword($password){
return $this->encrypt($password)===$this->password;
}

 

Yii数据库用户信息登录,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。