首页 > 代码库 > Yii数据库用户信息登录

Yii数据库用户信息登录

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

数据库:例如DatabaseName。

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

Yii:

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

2.生成TableName的model。

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

代码如下:

 

<?phpclass 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;}