Yii2一页多验证码
我有一个页面,包含多个单独形式的验证码,例如登录和注册模态等。 如果我使用以下代码,问题是当刷新一个验证码时,另一个验证码将不可用,因为它们使用相同的会话变量: 1) 登录 登录模式(视图): 登录模型:Yii2一页多验证码,yii2,captcha,Yii2,Captcha,我有一个页面,包含多个单独形式的验证码,例如登录和注册模态等。 如果我使用以下代码,问题是当刷新一个验证码时,另一个验证码将不可用,因为它们使用相同的会话变量: 1) 登录 登录模式(视图): 登录模型: public function rules() { return [ ['captcha', 'captcha'], ]; } public function rules() { return [
public function rules()
{
return [
['captcha', 'captcha'],
];
}
public function rules()
{
return [
['captcha', 'captcha', 'captchaAction' => 'site/captcha-login',],
];
}
2) 登记册
注册模式(视图):
注册表模型:
public function rules()
{
return [
['captcha', 'captcha'],
];
}
public function rules()
{
return [
['captcha', 'captcha', 'captchaAction' => 'site/captcha-register',],
];
}
为了解决会话问题,我使用了不同的验证码动作来设置不同的会话变量:
1) 登录
登录模式视图:
echo Captcha::widget([
'id' => 'Login-captcha',
'name' => 'LoginModel[captcha]',
'captchaAction' => '/site/captcha'
]);
echo Captcha::widget([
'id' => 'register-captcha',
'name' => 'RegisterModel[captcha]',
'captchaAction' => '/site/captcha'
]);
echo Captcha::widget([
'id' => 'Login-captcha',
'name' => 'LoginModel[captcha]',
'captchaAction' => '/site/captcha-login'
]);
echo Captcha::widget([
'id' => 'register-captcha',
'name' => 'RegisterModel[captcha]',
'captchaAction' => '/site/captcha-register'
]);
登录模型:
public function rules()
{
return [
['captcha', 'captcha'],
];
}
public function rules()
{
return [
['captcha', 'captcha', 'captchaAction' => 'site/captcha-login',],
];
}
2) 登记册
注册模式(视图):
注册表模型:
public function rules()
{
return [
['captcha', 'captcha'],
];
}
public function rules()
{
return [
['captcha', 'captcha', 'captchaAction' => 'site/captcha-register',],
];
}
到目前为止,一切正常,但当我通过主配置文件的commponent部分下面的配置将会话从常规php文件移动到数据库时:
'session' => [
'class' => 'yii\web\DbSession',
],
然后,第一页加载中的CAPTCHA不起作用,必须刷新它们才能正常工作。
有什么问题吗?试试这个,这是给yii1的,但你可以得到更多的想法 也看到