2014-06-11 2 views
0

kohana 3.1에 간단한 captcha를 넣으려는 시도는 다음 코드를 사용하여 모델에서 이미지를 생성합니다. $ session = Session :: instance();Kohana 3.1 imagejpeg 또는 imagepng captcha를 만듭니다

      $string = ''; 

          for ($i = 0; $i < 5; $i++) { 
           $string .= chr(rand(97, 122)); 
          } 

          $cns_captcha = $session->set('random_number', $string); 

          $dir = LIBPATH.'fonts/'; 

          $image = imagecreatetruecolor(165, 50); 

          // random number 1 or 2 
          $num = rand(1,2); 
          if($num==1) 
          { 
           $font = "Capture it 2.ttf"; // font style 
          } 
          else 
          { 
           $font = "Molot.otf";// font style 
          } 
          // random number 1 or 2 
          $num2 = rand(1,2); 
          if($num2==1) 
          { 
           $color = imagecolorallocate($image, 113, 193, 217);// color 
          } 

          else 
          { 
           $color = imagecolorallocate($image, 163, 197, 82);// color 
          } 


          $white = imagecolorallocate($image, 255, 255, 255); // background color white 
          imagefilledrectangle($image,0,0,399,99,$white); 

          imagettftext ($image, 30, 0, 10, 40, $color, $dir.$font, $cns_captcha); 

          //header('Content-Type: image/PNG'); 
          imagepng($image); 

불행히도 이것은 PNG IHDR2 * vIDATxod44oMѴe &) FNCCB를 생산 ͱ ͱ ͱ ͱ ͱ ͱ ͱ ͱ ?????????????????????????? G x À 이미지가 없습니다 미리 도움을 청합니다.

답변

0

콘텐츠 유형을 설정하지 않으면 브라우저가 텍스트라고 가정합니다.

imagettftext ($image, 30, 0, 10, 40, $color, $dir.$font, $cns_captcha); 

$this->response->headers('Content-Type', 'image/png'); 

imagepng($image); 

편집 : 당신이 Kohana의 이미지 모듈 살펴 보았다

(!) 참고로

? http://kohanaframework.org/3.3/guide-api/Image

+0

ErrorException [Notice] : 정의되지 않은 속성 : Model_captcha :: $ response. 나는 kohana 이미지를보고 거기에 뭔가가 있는지 볼려고 노력하고 있습니다. –

+0

이 예제를 사용하려고하면 [link] (http://forum.kohanaframework.org/discussion/6000/create-a-kohana-3-captcha/p1 ") 파이어 폭스는 이미지가 포함되어 있기 때문에 이미지를 표시 할 수 없다고 말합니다 오류 –

+0

아 귀하의 코드가 모델에 있다는 것을 알지 못했습니다.이 경우 2 가지 : 1. 왜 모델에서 데이터를 출력합니까? MVC가 아닙니다 (모델에서 이미지 객체를 반환하고 컨트롤러가 에코를 표시하도록하십시오.) 2 'Request :: $ initial-> headers ('Content-Type', 'image/png');'또한 kohana 3.3.2 https : // github에서 약간 수정 된 일부 모듈 포크를 살펴 봅니다. com/AmazingDreams/kohana-captcha는 모든 이미지 렌더링을 처리하므로 HTML을 넣을 위치를 신경 써야합니다. – AmazingDreams