테스트 사이트 - 개발 중인 베타 버전입니다

kcaptcha 에서 이미지가 생성이 안되고 있습니다 채택완료

logos 7년 전 조회 6,616

define('G5_USE_CACHE',  false); 로 설정되어 있습니다

 

리캡챠에서 음성을 확인하면 음성은 나옵니다 새로고침하면 바뀐값으로 음성이 변경됩니다 /data/cache/ 아래에 mp3 파일은 올바르게 생성됩니다 그런데 이미지만 표시되지 않습니다.

 

Q. 소스코드가 UTF-8 아니다? A. 전체확인 결과 전체 다 UTF-8 맞습니다   그게 문제라면 mp3 파일도 생성이 안되지 않을까 합니다

 

Q. /data/cache 퍼미션 문제 A. 퍼미션이 문제라면 mp3 파일도 생성되지 않을 것입니다

 

Q.에디터 화면에서는 보이지 않지만 include 된 파일에 공백이 숨어 있는 경우 A.관련파일 모두 열어서 확인한 결과 이상이 없습니다   그게 문제라면 mp3 파일도 생성이 안되지 않을까 합니다

 

Q. /css/default.css 와 mobile.css 의 이미지 경로 A. 원본: ../img/captcha.png     수정: /img/captcha.png   이렇게 해도 이미지는 표시 안됩니다

 

Q. plugin/kcaptcha/ 의 하위파일에서 오류발생하는 경우 A. ini_set ('display_errors', 'On'); 상태에서 확인하였습니다     kcaptcha.js             개발자 console 에서 확인해도 이상없고 mp3 재생도 잘되므로 이상없다고 봅니다     kcaptcha_session.php    이상없이 세션 잘 생성됩니다     kcaptcha_result.php     ss_captcha_count 가 5미만이지만 혹시 몰라 항상 true 를 반환하도록 수정      kcaptcha_mp3.php        문제없이 mp3 파일 잘 생성됩니다     kcaptcha_image.php      kcaptcha_image.php?t=1512028435  직접호출해도 이미지가 표시되지 않습니다

    kcaptcha.lib.php        특별한 이상이 표시되지 않습니다

 

kcaptcha.lib.php 파일에서 KCAPTCHA.image 메서드의 맨 아래 부분에서 다음과 같이 수정하고 kcaptcha_image.php?t=1512028435 를 직접 호출해서 보면 바이너리 코드만 잔뜩 나옵니다

        if(function_exists("imagejpeg")){

            //header("Content-Type: image/jpeg");   // 여기가 있으면 검정화면에 아무것도 안나옴

            //imagejpeg($img2, null, $jpeg_quality);

            echo '<img src="'.imagejpeg($img2, null, $jpeg_quality).'" />';

            exit;

        }else if(function_exists("imagegif")){

            header("Content-Type: image/gif");

            imagegif($img2);

        }else if(function_exists("imagepng")){

            header("Content-Type: image/x-png");

            imagepng($img2);

        }

물론 원래 코드로 돌려놓고 확인하면 까만바탕에 아무것도 안 나옵니다

뭐가 문제인걸까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 6개

채택된 답변
+20 포인트
7년 전

플러그인이나 스킨으로 인해 extend 폴더에 관련 파일이 추가 된 경우 캡차와 충돌하여 캡챠 이미지가 보이지 않는 경우가 있으니 의심되는 플러그인이나 스킨 관련 파일을 extend 폴더에서 제거하세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

l
logos
7년 전
답변 감사합니다

extend 폴더내의 파일을 몽땅 삭제하고 해 봐도
증상이 동일합니다

후~~
그누보드 순정에서는 잘나오는군요
일부 코어를 손댄 부분에서 문제인가 봅니다
하나씩 확인해 봐야겠네요^^

댓글을 작성하려면 로그인이 필요합니다.

주민
11개월 전

php-gd 라이브러리 설치 확인해보세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

x
4년 전

세상에!!! 저도 이문제로 해결했어요! logos님 감사해요!!! @@

1. /data/dbconfig.php 의 ?> 뒤에 공백 1개 삭제

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

l
7년 전

아래의 오류를 수정

1. /data/dbconfig.php 의 ?> 뒤에 공백 1개 삭제

2. /common.php 의 최상단에 error_reporting( E_ALL ); 로 한것을

   원래의 소스대로 복원

이 2가지 부분이 문제인것으로 확인되었습니다

현재 이미지 표시는 잘 됩니다

 

답변해 주신분들께 진심으로 감사드립니다

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

7년 전

천사별님 말씀처럼 다른 코드와 충돌일 가능성이 큽니다.

 

우격다짐으로 처리방식 또는 확인방법중 하나는..

 

와 같은 jquery 스크립트를

write.skin.php 파일에서  kcaptcha 실행 직전에 삽입해 보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

l
logos
7년 전
답변 감사합니다

순정에서 잘 되는걸 보니
제가 손댄 일부 코어에서 충돌이 발생하나 봅니다 ㅜㅜ
수정한곳에 몇곳이 안되니 찾는건 그리 어렵지 않을 것 같습니다

댓글을 작성하려면 로그인이 필요합니다.

C
7년 전

페이지 상단에

 

error_reporting(E_ALL); ini_set("display_errors", 1);

 

해보세요.

 

php 오류를 출력하는 코드 입니다.

 

아마 서버가 이미지 생성 관련 함수를 지원하지 않는 것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

l
logos
7년 전
답변 감사합니다
질문 내용안에
"ini_set ('display_errors', 'On'); 상태에서 확인하였습니다" 가
있었는데 못보신 모양입니다 ^^

if(function_exists("imagejpeg")) 하면 true 입니다
함수 미지원 문제는 아닌줄로 압니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인