yiiではログインモジュールを作成しています。ユーザー名とパスワードが正しく、このユーザーのIDを「成功」テーブルに保存する必要がある場合にのみユーザーにアクセスを許可したいと思います。しかし、ユーザー名だけが正しく、パスワードが間違っている場合は、正しいパスワードを入力する機会を3回だけ与えるために、そのユーザーのIDを「attempt」テーブルに保存します。しかし、これを実装しているとき、パスワードが間違っていると、試行テーブルにエントリが入力されません。私はActionLogin()メソッドを次のように作成しました-
public function actionLogin()
{
$model=new LoginForm;
$command = Yii::app()->db->createCommand();
// 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())
{
if($model->login()) {
$command->insert('attempt', array(
'id'=>Yii::app()->user->getId(),
));
$this->redirect(Yii::app()->user->returnUrl);
}
if(!$model->login())
{
$command->insert('attempt', array(
'id'=>Yii::app()->user->getId(),
));
}
}
}
// display the login form
$this->render('login',array('model'=>$model));
}
パスワードが間違っている場合にユーザーのIDを試行テーブルに入力するために必要な変更。私を助けてください。