2012-08-10 31 views
6

Tôi có một hình thức đăng ký sử dụng, trong đó tôi đang cố gắng để hiển thị một hình ảnh Captcha bằng cách sử dụng Yii phụ tùng CCaptcha, tuy nhiên liên kết hình ảnh của tôi xuất hiện phá vỡ, tập tin điều khiển:
CCaptcha hiển thị không có hình ảnh yii

public function actions() 
    { 
     return array(
      // captcha action renders the CAPTCHA image displayed on the contact page 
      'captcha'=>array(
       'class'=>'CCaptchaAction', 
       'backColor'=>0xFFFFFF, 
      ), 
     ); 
    } 

mô hình file:

public function rules() 
{ 
    return array(array('verifyCode','captcha','allowEmpty'=>!CCaptcha::checkRequirements(),'on'=>'insert'), 
); 
} 

Và xem file:

<?php if(CCaptcha::checkRequirements()): ?> 
    <div class="row"> 
     <?php echo $form->labelEx($model,'verifyCode'); ?> 
     <div> 
     <?php $this->widget('CCaptcha'); ?> 
     <?php echo $form->textField($model,'verifyCode'); ?> 
     </div> 
     <div class="hint">Please enter the letters as shown. 
     <br/>Letters are not case-sensitive.</div> 
     <?php echo $form->error($model,'verifyCode'); ?> 
    </div> 
    <?php endif; ?> 

Như một câu trả lời cung cấp nơi nào đó tôi cũng đã cố gắng đưa ra các quy tắc truy cập trong tập tin điều khiển của tôi như

public function accessRules() 
{ 
    return array(
     array('allow', 
     'actions' => array('captcha'), 
     'users' => array('*'), 
     ), 
    ); 
} 

Nhưng không có gì vẻ là làm việc.

+0

Tôi đã kiểm tra mã của bạn và không có lỗi! Chỉ cần tôi thêm 'on' => 'insert' nhưng xuất hiện hình ảnh của captcha! – SoldierCorp

+0

Tôi cũng đã viết 'on' => 'insert' trong lớp mô hình của mình. nhưng không có may mắn ở đó. Công cụ yiic tạo hình ảnh xác thực của ứng dụng hiển thị có nghĩa là, có điều gì đó, tôi thiếu hoặc viết không chính xác. –

Trả lời

8

Vấn đề là với các tập tin điều khiển, nó cần phải có được,

public function accessRules() 
    { 
     return array(
      array('allow', 
       'actions'=>array('create', 'captcha'), 
       'users'=>array('*'), 
      ), 
    } 


trong khi tôi đã đề cập đến hành động cho hình ảnh xác thực ở cuối, mà tôi đã tìm ra không được cho phép trong Yii. Tất cả các hành động cho phép * nên được cùng nhau.

-1

Yii captcha sẽ tạo hình ảnh png. Có thể giải thích cho liên kết hình ảnh bị hỏng sẽ là một phần mở rộng GD thiếu hoặc mở rộng imagick, có thể được xác định bởi sự hiện diện của các văn bản sau đây trong bạn error.log:

cuộc gọi đến không xác định chức năng imagecreatetruecolor

Để biết chi tiết và khắc phục, hãy xem "call to undefined function imagecreatetruecolor" error in PHP & pChart

Các vấn đề liên quan