zfeig 2014-12-29 19:10:45 7138次浏览 4条评论 6 0 0

如题,想在一个网站前后台都使用到验证码怎么办?比如前台留言中需要验证码,后台登录需要验证码?如果同时使用公共的验证码就会造成操作冲突。这时需要两个不同的验证码;使用方法如下:

前台默认模块 controllers目录下的IndexController
后台admin模块 modules下controllers目录下IndexController
分别在两个控制器中增加captcha独立操作

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

分别在不同的模型中增加verifyCode字段,和captcha验证器

假设前台MsgForm:
public $verifyCode;

rules里面增加:

['verifyCode', 'captcha','captchaAction'=>'index/captcha','message'=>'验证码不正确!'],

后台是LoginForm:
public $verifyCode;

rules里面增加:
['verifyCode', 'captcha','captchaAction'=>'admin/index/captcha','message'=>'验证码不正确!'],

前台模板:

<?=$form->field($model,'verifyCode')->widget(Captcha::className(),['captchaAction'=>Yii::$app->urlManager->createUrl('index/captcha'),
		'template'=>'<div class="row"><div class="col-md-3 col-sm-3 mr20">{image}</div><div class="col-md-6 col-sm-3">{input}</div></div>'
	])?>

后台模板:

<?=$form->field($model,'verifyCode')->widget(Captcha::className(),['captchaAction'=>Yii::$app->urlManager->createUrl('admin/image/captcha'),
		'template'=>'<div class="row"><div class="col-md-3 col-sm-3 mr20">{image}</div><div class="col-md-6 col-sm-3">{input}</div></div>'
	])?>
  • 评论于 2014-12-29 20:01 举报

    建议楼主花点时间把格式调整一下。

    1 条回复
    评论于 2014-12-30 14:41 回复

    没注意到编辑器下面的格式例子,~多谢舰长提醒!

  • 评论于 2015-01-09 14:53 举报

    后台模板使用'captchaAction'=>Yii::$app->urlManager->createUrl('admin/index/captcha'),验证码无法显示

    1 条回复
    评论于 2015-02-03 11:06 回复
    $form->field($searchModel, 'verifyCode')->widget(Captcha::className(), [
                        'captchaAction'=>'country/captcha',
                        'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-3">{input}</div></div>',
                    ]) 
    
  • 评论于 2015-02-02 17:46 举报

    看下siteController就可以了

  • 评论于 2015-03-29 12:23 举报

    模板文件中应该加上 use yii\captcha\Captcha;

您需要登录后才可以评论。登录 | 立即注册