javascript - 为什么 yii 验证码总是显示固定图片?

标签 javascript php validation yii captcha

验证码工作没有问题,但我不知道为什么它不生成新的代码来显示?我查看了文档,但找到了可以解决我的问题的东西。

captcha image

这里有我遗漏的东西吗?谢谢。

public function actions()
    {
        return array(
            'captcha'=>array(
                'class'=>'CCaptchaAction',
                'backColor'=>0xFFFFFF,
            ),
        );
    }

我的 View 文件:

        <?php echo $form->labelEx($model,'verifyCode'); ?>  
        <?php $this->widget('CCaptcha'); ?>
        <?php echo $form->textField($model,'verifyCode'); ?>
        <?php echo $form->error($model,'verifyCode'); ?>

最佳答案

这是一个已知的错误,很可能会在 Yii2 中修复。

<小时/>

在 Yii 论坛上,用户 Black suggests :

My solution was to remove the session key on my controller action on get. Be careful not to remove it in any other place because it will probably fail on server validation.

$session = Yii::app()->session;
$prefixLen = strlen(CCaptchaAction::SESSION_VAR_PREFIX);
foreach($session->keys as $key)
{
        if(strncmp(CCaptchaAction::SESSION_VAR_PREFIX, $key, $prefixLen) == 0)
                $session->remove($key);
}
<小时/>

另一种解决方法是 use JavaScript to click on the refresh link正如 Soph 所提到的,在每个页面加载时:

$(function() { 
    $('#yw0_button').click(); 
});

关于javascript - 为什么 yii 验证码总是显示固定图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24695419/

相关文章:

php - laravel 5 中应用程序 URL 的意义是什么

javascript - 仅允许字母数字和特殊字符的正则表达式不起作用

jquery - 在 &lt;input&gt; html 5 表单中使用多个模式进行验证

javascript - 如何将 WinJS ListView 绑定(bind)到 Web 服务?

javascript - 在 pug 中编辑表格的单元格并将编辑的数据保存到数据库中

javascript - `this` 对象在使用promise时未定义

javascript - 如何在 reactJs 中添加样式以显示/隐藏谷歌地图?

php - 如何通过mysql动态向google geochart添加值?

php - Laravel - 获取所有记录而不仅仅是第一个并将它们放在一起?

grails - 带有grails的验证程序:无法创建用户