Captcha и ошибки изображения

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
xoma
Сообщения: 641
Зарегистрирован: 2009.04.02, 15:24
Откуда: Ногинск
Контактная информация:

Captcha и ошибки изображения

Сообщение xoma »

Всем доброго дня!

Возможно на меня плохo действует жара, но вот уже полтора часа не могу понять в чем проблема.

Есть "свеже-сгенерированный" проект yii, в нем есть страничка "Контакты" (site/contact) (во всех проектах подефолту она есть) - там есть капча - она показывается и рефрешится как и положено (т.е. GD и прочие библиотеки установлены и настроены).

Создал свой контроллер TestController с вот таким кодом:

Код: Выделить всё

<?php
class TestController extends FrontController
{
    public function actions()
    {
        return array(            
            'captcha'=>array(
                'class'=>'CCaptchaAction',
                'backColor'=>0xFFFFFF,
            ),
            'page'=>array(
                'class'=>'CViewAction',
            ),
        );
    }    
    public function actionRegistration()
    {       
        $form = new RegistrationForm();      
      
        $this->render('registration',array('model' => $form));
    }  
}

?>

Фрагмент view:

Код: Выделить всё

   <?php $this->widget('CCaptcha'); ?>
При этом капча не отображается, т.е. ссылка "Получить новый код" есть, а вот самой картинки нет.

Не помогает даже явное указание captchaAction:

Код: Выделить всё

<?php $this->widget('CCaptcha',array('captchaAction' => '/test/captcha')); ?>
Если попытаться открыть УРЛ картинки, получаю вот что:
Изображение «http://localhost/app/index.php/test/cap ... 1dd7f906f8» не может быть показано, так как содержит ошибки.
Если указать стандартно сгенерированный контроллер site в качестве captchaAction - все работает отлично :

Код: Выделить всё

<?php $this->widget('CCaptcha',array('captchaAction' => '/site/captcha')); ?>
Может кто-нибудь сталкивался с подобным? Или уже есть решение?

p.s. Yii из SNV, Ubuntu 10.04, Apache
Аватара пользователя
yii
Сообщения: 122
Зарегистрирован: 2010.04.29, 10:40

Re: Captcha и ошибки изображения

Сообщение yii »

Странно как-то. Я делал тоже самое (с указанием captchaAction), но у меня все нормально работает (Windows).
Аватара пользователя
timlar
Сообщения: 1382
Зарегистрирован: 2009.09.19, 17:49
Откуда: Украина, Днепропетровск
Контактная информация:

Re: Captcha и ошибки изображения

Сообщение timlar »

У меня тоже все работает. Если зайти по адресу http://site_name/site/captcha (в твоем случае http://site_name/еуые/captcha) то должна отображаться картинка каптчи.
Twitter: @timlar_ua
Nihisil
Сообщения: 118
Зарегистрирован: 2010.08.05, 06:39

Re: Captcha и ошибки изображения

Сообщение Nihisil »

Столкнулся с такой же проблемой. Есть контроллер Product. И правило для него в main.php

Код: Выделить всё

'product/<url>' => 'product/product', 
Если это правило закомментировать, то урл /product/captcha работает и сама капча работает. Иначе картинка капчи не отображается и урл не работает. Добавление правила:

Код: Выделить всё

'product/captcha' => 'product/captcha', 
Не спасло ситуацию. Как тут быть?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Captcha и ошибки изображения

Сообщение samdark »

Добавленное правило стоит выше, чем существующее?
Nihisil
Сообщения: 118
Зарегистрирован: 2010.08.05, 06:39

Re: Captcha и ошибки изображения

Сообщение Nihisil »

Sam Dark писал(а):Добавленное правило стоит выше, чем существующее?
Правило стояло ниже, поэтому и не работало. Спасибо.
Аватара пользователя
jedi
Сообщения: 82
Зарегистрирован: 2010.12.01, 08:49

Re: Captcha и ошибки изображения

Сообщение jedi »

timlar писал(а):У меня тоже все работает. Если зайти по адресу http://site_name/site/captcha (в твоем случае http://site_name/еуые/captcha) то должна отображаться картинка каптчи.
captcha у меня не работает только с nginx (в apache всё ок), хотя nginx+php = Yii Requirement Checker - все нормально, GD extension with FreeType support - есть. Странно

UPD: почтистил кеш браузера - заработало
joomla->drupal->yii
ded
Сообщения: 13
Зарегистрирован: 2011.06.09, 13:40

Re: Captcha и ошибки изображения

Сообщение ded »

Примерно такая же проблема. Не разобраться ни как.
"свеже-сгенерированный" проект, страничка "Контакты" (site/contact) - там есть капча - она показывается.
При этом в своем проекте на этой же машине - капча не показывается.
Делаю тестовый модуль с таким контроллером:

Код: Выделить всё

class RegistrationController extends Controller
{
    // public $defaultAction = 'show';

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

    // для проверки работоспособности url
    public function actionShow() { 
        echo "OK!";
    }
}
По ссылке /index.php/test/registration/captcha в демо проекте капча отображается. В моем проекте - нет. При этом браузер пытается отобразить картинку (т.е. получает соответствующий заголовок), firebug выдает ошибку что картинка повреждена.

В обоих конфигурациях описан компонент:
'image'=>array(
'class'=>'application.extensions.image.CImageComponent',
// GD or ImageMagick
'driver'=>'GD',
// ImageMagick setup path
//'params'=>array('directory'=>'/opt/local/bin'),
),
Сам extensions и там и там существует.
http://site_name/site/captcha то же не отображается. Выводит битую картинку.

Куда копать?! Уверен что где то стандартный затык...
ded
Сообщения: 13
Зарегистрирован: 2011.06.09, 13:40

Re: Captcha и ошибки изображения

Сообщение ded »

Добавил в тестовый модуль:

Код: Выделить всё

public function actionTestimage() {
        return Yii::app()->request->sendFile('test.jpg', file_get_contents(Yii::getPathOfAlias('webroot.images').DIRECTORY_SEPARATOR.'test.jpg'));
    }
При вызове /index.php/test/registration/testimage
Возвращается битая картинка.

Что делать то?!
ded
Сообщения: 13
Зарегистрирован: 2011.06.09, 13:40

Re: Captcha и ошибки изображения

Сообщение ded »

Проблема решилась.
Файл index.php был в кодировке UTF-8 с BOM.
Переписал без BOM и каптча стала отображаться.
Barkov
Сообщения: 96
Зарегистрирован: 2011.10.08, 13:23
Откуда: Симферополь

Re: Captcha и ошибки изображения

Сообщение Barkov »

Привет всем!

И у меня проблема с капчой :). Почитал все об этом на форуме но проблему не решил.
Использую Yii-user. Перевел хранение сессий в БД и капча пропала. Firebug пишет что /user/registration/captcha/v/52ef3ad2b7b8a - 500 Internal Server Error
Подскажите в чем причина?
NikVolkov
Сообщения: 83
Зарегистрирован: 2015.03.24, 22:03

Re: Captcha и ошибки изображения

Сообщение NikVolkov »

У меня только что был косячок такой же.
Дело было в настройках accessRules - нужно было добавить в actions 'captcha'
sam
Сообщения: 31
Зарегистрирован: 2017.12.14, 18:23

Re: Captcha и ошибки изображения

Сообщение sam »

У меня NGINX, сделал следующее и помогло:
sudo bash
apt install php5-gd
apt install freetype*
sudo service php5-fpm stop
sudo service php5-fpm start
Ответить