Капча не работает в Yii2

У меня есть проект на Yii2, и в моей контактной форме на локальном хосте капча работает нормально, но не работает в Интернете.

Это моя капча.

'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 отлично работает на локальном хосте, но не работает в прямом эфире. Что происходит не так?

Заранее спасибо.


person Anil Chaudhari    schedule 05.08.2015    source источник
comment
Можете ли вы показать результат своего требования.php с вашего сервера?   -  person Wilianto Indrawan    schedule 05.08.2015
comment
Я имею в виду, пожалуйста, проверьте и запустите ваш файл requirements.php из yii на вашем сервере. Убедитесь, что расширение GD PHP и ImageMagick PHP уже переданы.   -  person Wilianto Indrawan    schedule 05.08.2015
comment
@Undefined ты решил проблему? Если да, то как?   -  person Mirjalal    schedule 21.05.2016
comment
@MirjalalTalishinski Это была ошибка моего сервера. Некоторые расширения не были установлены на тот момент. Теперь все работает нормально...   -  person Anil Chaudhari    schedule 23.05.2016
comment
@Undefined Вчера я тоже столкнулся с той же проблемой. Мое действие update также требует проверки капчи. Разница только в том, что я использую googleReCaptcha (не собственную Yiis). Я добавил 'required', 'on' => 'update' в правила модели, но это не решило мою проблему. Я решил это, добавив поле капчи в (также) файл update.php. Но, на данный момент, каков ваш подход к решению этой проблемы? Помогите пожалуйста правильно настроить. Спасибо.   -  person Mirjalal    schedule 23.05.2016


Ответы (1)


  1. Сделайте все, что описано в руководстве
  2. Если вы не видите капчи, проверьте требования Yii2, набрав в командной строке в корневом каталоге проекта:

    требования php.php

  3. Если что-то не так - поправьте. Обратите внимание, что должен быть установлен gd + freetype ИЛИ imagick. наблюдайте за строкой "throws"

  4. Если капча снова не отображается, проверьте кодировку файлов php. Это должно быть utf-8 без BOM. Особенно обратите внимание на файлы *_local.php, находящиеся в gitignore. Иногда их можно было редактировать по ftp, с помощью текстовых редакторов, которые по умолчанию добавляют спецификацию. Этот пункт стоит мне 5 часов работы.

person Rostyslav Pylypenko    schedule 25.05.2016
comment
Еще одна вещь, которую нужно проверить, это то, что если вы удаляете site из маршрута, используя такие правила менеджера URL-адресов: '<alias:about|contact>' => 'site/<alias>',, вы добавили к нему действие captcha. Возможно, вы сделали это локально, но не загрузили это изменение. - person johnsnails; 29.01.2018