我在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中正常工作但不能正常工作。出了什么问题?
先谢谢。
答案 0 :(得分:0)
如果您没有看到验证码,请在项目的根目录中输入命令行来检查Yii2要求:
php requirements.php
如果出现问题 - 修复它。注意必须安装gd + freetype OR imagick。 watch "throws" row
如果验证码未再次显示,请检查php文件编码。它必须是没有BOM的utf-8。特别要注意gitignore中的* _local.php文件。有时,它们可以通过ftp编辑,在默认情况下添加BOM的文本编辑器的帮助下。这个项目花了我5个小时的工作。