저는 Yii PHP Framework를 처음 사용하고 있으며 로그인 양식 작업을하고 있습니다. 나는 이미 Yii에 testdrive 앱을 설치할 때 로그인 기능이 있다는 것을 알고 있습니다. 나는 데이터베이스를 통해 로그인하도록 편집하고 작동하지 않습니다. 코드에 오류가 없지만 로그인 할 때 항상 잘못된 비밀번호 또는 사용자 이름이 표시됩니다. 여기 내 코드가있다. 여기 UserIdentity.phpYii 로그인이 작동하지 않습니다.
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.
*/
private $_id;
public function authenticate()
{
$record=User::model()->findByAttributes(array('username'=>$this->username));
if($record===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($record->password!==crypt($this->password,$record->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$record->id;
$this->setState('title', $record->title);
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
}
를 들어
는
public function actionLogin()
{
$model=new LoginForm;
// if it is ajax validation request
if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
// collect user input data
if(isset($_POST['LoginForm']))
{
$model->attributes=$_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if($model->validate() && $model->login())
$this->redirect(Yii::app()->user->returnUrl);
}
// display the login form
$this->render('login',array('model'=>$model));
}
당신이 나를 도울 수 SiteController.php
위한거야? 감사! 비밀번호는 DB를 텍스트로 저장 한 경우
어떻게 암호를 db로 저장 했습니까? 암호화 했니? – Hearaman
아니요. 암호는 일반 텍스트입니다. 방금 mysql insert 명령을 실행했습니다. 내가 잘못 했니? – Yassi