제목 | 보안문자 이미지 출력 시, 로컬에서는 정상 출력되는데 서버에서는 무한루프처럼 계속 돌아갑니다. | ||
---|---|---|---|
글쓴이 | layman | 작성시각 | 2016/06/03 10:56:08 |
|
|||
같은 소스를 로컬에서 서버로 업로드 하였을 때, 테스트용 로컬에서 홈페이지에 접속하면 보안문자가 정상적으로 출력됩니다. 그런데, 실제 사용 서버에 올려두고 접속하면 보안문자가 출력이 안됩니다. ※ 특이점 : 서버에서 접속 시, 해당 페이지가 무한루프처럼 계속 돌아갑니다(captcha.php에 반복문이 하나 있지만 무한루프가 되는 코드는 아니에요). 출력되어서 화면은 완성되었는데 희한하게 개발자도구에서 소스를 보면 천천~히 하나하나씩 생기는 상황이구요, 보안문자부분 이미지가 깨져있고, 계속 페이지를 로딩하는 상태가 유지됩니다(브라우저 탭에 보면 동그라미가 계속 회전 중..), $path에 설정된 경로를 호출하면 captchar.php 가 실행되어 화면에 보안문자를 출력해주는소스인데요.
다음은 write.php 소스코드에요. (글쓰기 view페이지) <span class="security_img" id="security_img"> <?php $path = "http://".$_SERVER['HTTP_HOST'].'/captcha'; ?> <img id="security_target" src="<?=$path?>"> </span>
다음은 captcha.php 소스코드에요. ----------------------------------------------------------------------------------------------------------------------------------------------------- <?php header('Content-type: image/gif'); session_start(); $random = $_SESSION['captcha']; $SI_CHAR_LEN = 6; // 보여줄 글자수$SI_IMAGE_WIDTH = 20; // 글자 이미지 하나의 폭 $SI_IMAGE_HEIGHT = 28; // 글자 이미지 하나의 높이 $SI_CHAR_ARRAY = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); // 보여줄 글자 목록 $img = imagecreatefrompng('http://'.$_SERVER['HTTP_HOST'].'/webroot/images/capcha/copybg.png'); // 배경이미지를 읽어온다 $char_num = count($SI_CHAR_ARRAY); // 글자목록 개수 for ($i = 0 ; $i < strlen($random); $i++) { $src = imagecreatefrompng('http://'.$_SERVER['HTTP_HOST'].'/webroot/images/capcha/' . $random[$i] . '.png'); // 선택된 임의의 글자 이미지를 읽어온다. imagecopy($img, $src, $SI_IMAGE_WIDTH * $i, 0, 0, 0, $SI_IMAGE_WIDTH, $SI_IMAGE_HEIGHT); // 배경이미지와 합친다 } // 취소선 이미지 그리기 $strike = rand(1,9); $src = imagecreatefrompng('http://'.$_SERVER['HTTP_HOST'].'/webroot/images/capcha/strike/' . $strike . '.png'); imagecopy($img, $src, 0, 0, 0, 0, $SI_IMAGE_WIDTH * $SI_CHAR_LEN, $SI_IMAGE_HEIGHT); imagegif($img); // 이미지 뿌리기 imagedestroy($img); ?> ----------------------------------------------------------------------------------------------------------------------------------------------------- 경로도 다 일치하는데 왜 로컬에서는 되고, 서버에서는 무한루프처럼 계속 돌아가고 이미지도 출력안되는지 모르겠어요. 로그에도 아무 문제 없구요. 고수님들, 도와주세요.ㅜㅜ
첨부한 이미지는 이클립스 php explorer 구조입니다. |
|||
첨부파일 |
4.PNG (32.4 KB) |
||
다음글 | autoload로 session을 불러올시; (2) | ||
이전글 | Message: Only variables should... (4) | ||
한대승(불의회상)
/
2016/06/03 11:20:47 /
추천
0
캡차 디렉토리 퍼미션 확인 해 보세요.
|
layman
/
2016/06/03 11:27:18 /
추천
0
댓글 보고 방금 리눅스에 캡차 디렉토리 퍼미션 755로 주고 해보았으나, 결과가 똑같네요. 어흑.. 무언가 캡차.php에서 문제가 있는 것 같긴 한데.. 오류가 없고 로컬에서는 잘 작동된다는게 희한합니다.. |
한대승(불의회상)
/
2016/06/03 12:15:47 /
추천
0
CI의 캡챠 헬퍼를 사용하지 않으시고 직접 구현 하셨나 보군요. $img = imagecreatefrompng('http://'.$_SERVER['HTTP_HOST'].'/webroot/images/capcha/copybg.png'); // 배경이미지를 읽어온다 코드중 이부분이 좀 걸리는데 배경 이미지 경로를 확인해 보세요. |
layman
/
2016/06/03 13:15:07 /
추천
0
다른 프로젝트의 실서버에 있는 IMG 경로와 비교해봤는데, 크게 다른 점이 없네요. 보안문자는 이 프로젝트에 처음 집어넣는거라.. ㅜㅜ 잘 안되네요. 계속 찾아보고 있습니다. |