Капча в модуле... Почему не показывается картинка?

А пому не работает капча в модуле?

при обращении к капче по ссылке получаю ошибку

1589

captcha.png

site\protected\modules\contact

ContactModule.php


<?php

class ContactModule extends CWebModule

{

	public function init()

	{

		$this->setImport(array(

			'contact.models.*',

			'contact.components.*',

		));

	}


	public function beforeControllerAction($controller, $action)

	{

		if(parent::beforeControllerAction($controller, $action)) return true;

		else return false;

	}

}

controllers\DefaultController.php


<?php

class DefaultController extends Controller

{

	public function actions()

	{

		return array(

			'captcha'=>array('class'=>'CCaptchaAction','backColor'=>0xFFFFFF),

		);

	}


	public function actionIndex()

	{

		$model=new ContactForm;

		if(isset($_POST['ContactForm']))

		{

			$model->attributes=$_POST['ContactForm'];

			if($model->validate())

			{

				$headers="From: {$model->email}\r\nReply-To: {$model->email}";

				mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers);

				Yii::app()->user->setFlash('index','Thank you for contacting us. We will respond to you as soon as possible.');

				$this->refresh();

			}

		}

		$this->render('index',array('model'=>$model));

	}

}

models\ContactForm.php


<?php

class ContactForm extends CFormModel

{

	public $name;

	public $email;

	public $subject;

	public $body;

	public $verifyCode;


	public function rules()

	{

		return array(

			array('name', 'required'),

			array('email', 'required'),

			array('subject', 'required'),

			array('body', 'required',),

			array('email', 'email'),

			array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),

		);

	}

}

views\default\index.php


<?php

$this->pageTitle=Yii::app()->name.' - Contact';

$this->breadcrumbs=array('Contact');

?>

<?php if(Yii::app()->user->hasFlash('index')): ?>

<div class="flash-success">

	<?php echo Yii::app()->user->getFlash('index'); ?>

</div>

<?php else: ?>


<div class="form">


<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'contact-form',

	'enableClientValidation'=>true,

	'clientOptions'=>array('validateOnSubmit'=>true),

)); ?>


	<div class="row">

		<?php echo $form->labelEx($model,'name'); ?>

		<?php echo $form->textField($model,'name'); ?>

		<?php echo $form->error($model,'name'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'email'); ?>

		<?php echo $form->textField($model,'email'); ?>

		<?php echo $form->error($model,'email'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'subject'); ?>

		<?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>128)); ?>

		<?php echo $form->error($model,'subject'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'body'); ?>

		<?php echo $form->textArea($model,'body',array('rows'=>6, 'cols'=>50)); ?>

		<?php echo $form->error($model,'body'); ?>

	</div>


	<?php if(CCaptcha::checkRequirements()): ?>

	<div class="row">

		<?php $this->widget('CCaptcha'); ?>

	</div>

	<div class="row">

		<?php echo $form->error($model,'verifyCode'); ?>

		<?php echo $form->textField($model,'verifyCode'); ?>

	</div>

	<?php endif; ?>


	<div class="row buttons">

		<?php echo CHtml::submitButton('Send'); ?>

	</div>


<?php $this->endWidget(); ?>


</div>


<?php endif; ?>

Попробуйте посмотреть закладку Сеть (Firebug), может она выведет там больше информации по этой ссылке

Решено

Проблема была с кодировками.

Если создать каркас приложения и преобразовать SiteController.php из ANSI в UTF8, то перестает отображаться картинка капчи на странице Contact.php. И ещё я преобразовал все файлы в приложении в UTF8 после чего в IE8 не работает выравнивание, сайт выравнивается по левому краю браузера.

Надо в utf-8 без BOM

Спасибо. я как раз в обычный UTF8 переводил.