Captcha在Yii2中不起作用

时间:2015-08-05 15:59:27

标签: php yii2 captcha yii2-advanced-app

我在Yii2有一个项目,我在localhost验证码上的联系表格工作正常,但没有在线工作。

这是我的验证码行动。

'captcha' => [
     'class' => 'yii\captcha\CaptchaAction',
     'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],

这是我的UrlManager规则。

'<alias:captcha|index|contact>' => 'site/<alias>',

这是表格

<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>
        <?= $form->field($model, 'name')->textInput(['placeholder' => 'Enter Name']) ?>
        <?= $form->field($model, 'email')->textInput(['placeholder' => 'Enter Email']) ?>
        <?= $form->field($model, 'subject')->textInput(['placeholder' => 'Enter Subject']) ?>
        <?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
        <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
            'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
        ]) ?>

        <div class="form-group">
            <?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
        </div>
    <?php ActiveForm::end(); ?>

Captcha在localhost中正常工作但不能正常工作。出了什么问题?

先谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 制作manual
  2. 中描述的所有内容
  3. 如果您没有看到验证码,请在项目的根目录中输入命令行来检查Yii2要求:

    php requirements.php

  4. 如果出现问题 - 修复它。注意必须安装gd + freetype OR imagick。 watch "throws" row

  5. 如果验证码未再次显示,请检查php文件编码。它必须是没有BOM的utf-8。特别要注意gitignore中的* _local.php文件。有时,它们可以通过ftp编辑,在默认情况下添加BOM的文本编辑器的帮助下。这个项目花了我5个小时的工作。