【问题标题】:yii2 captcha always return incorrectyii2 验证码总是返回不正确
【发布时间】:2018-01-01 17:55:13
【问题描述】:

我的控制器总是提供不正确的验证码。请任何人帮助我。

当代码运行到 $model->validate() 时,验证码验证返回 true。 但在那之后,在 $model->save() 的过程中,验证码被改变了。并验证返回 false。

class SiteController extends Controller {

public function behaviors() {
    return [
        'access' => [
            'class' => AccessControl::className(),
            'only' => ['logout', 'signup'],
            'rules' => [
                [
                    'actions' => ['signup'],
                    'allow' => true,
                    'roles' => ['?'],
                ],
                [
                    'actions' => ['logout', 'index'],
                    'allow' => true,
                    'roles' => ['@'],
                ],
            ],
        ],
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'logout',
            ],
        ],
    ];
}

public function actions() {
    return [
        'error' => [
            'class' => 'yii\web\ErrorAction',
        ],
        'captcha' => [
            'class' => 'yii\captcha\CaptchaAction',
            //'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
        ],
    ];
}

这是我的模特

    public static function tableName() {
    return 'users';

public function rules() {
    return [
        ["captcha",'captcha']
    ];

}

这是我保存数据的用户控制器

class Users extends \yii\db\ActiveRecord {

class UserController extends Controller {

public function behaviors() {
    return [
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'delete' => ['post'],
            ],
        ],
    ];
}

public function actionCreate() {
       $model = new Users();
       $userLoginExist = Yii::$app->user->identity;
       if(!$userLoginExist) {
           if (Yii::$app->request->post()) {
               if ($model->validate()&& $model->save()) {
               }
           }
       }
}

}

【问题讨论】:

  • 更新您的问题并添加相关操作..
  • 如果我删除 "$model->validate()" 那么它的工作因为它不是验证所以。

标签: php yii2 captcha


【解决方案1】:

似乎您没有在(新)模型中加载 post 返回的值,尝试使用(而不是if ($model->validate()&& $model->save()) {

  if ($model->load(Yii::$app->request->post()) && $model->save()) {

  }

【讨论】:

猜你喜欢
  • 2015-04-29
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-05-30
相关资源
最近更新 更多