2017-03-19 9 views
1

방금 ​​PHP 7을 실행하는 새 서버로 사이트를 이동했습니다. 원래 PHP 5.4에있었습니다. 다음 URL은 보안 문자처럼, 거기에 코드와 이미지를 표시해야합니다PHP 동적 이미지가 제대로 표시되지 않습니다.

$code=rand(1000,9999); 
$code = (string)$code; 
$_SESSION["code"]=$code; 

$im = imagecreate(50, 24); 
$bg = imagecolorallocate($im, 238, 238, 238); //background color blue 
$fg = imagecolorallocate($im, 85, 85, 85);//text color white 
imagefill($im, 0, 0, $bg); 
imagestring($im, 5, 5, 5, $code, $fg); 

header("Cache-Control: no-cache, must-revalidate"); 
header('Content-type: image/png'); 
header("Content-Disposition: inline; filename=captcha.png"); 
imagepng($im); 

imagedestroy($im); 

exit(); 

그것은 좋은 작업되었습니다

해당 URL 치면

http://appreviewhelper.com/static/captcha/GkK9yEiaw6

, 다음 코드가 실행 된 것입니다 이전 서버 나는 PHP GD 라이브러리가 설치되었고 모듈이 활성화되어 있는지 확인했다. 그리고 나는 그것을 계속 확인했다. 그러나 여전히 작은 공백 이미지를 얻는다. 어떤 아이디어?

감사

편집 : 시간 및 시간 후에, 나는이 문제를 발견하기 때문에 나 자신에 응답하고있어

array(12) { 
    ["GD Version"]=> 
    string(5) "2.1.1" 
    ["FreeType Support"]=> 
    bool(true) 
    ["FreeType Linkage"]=> 
    string(13) "with freetype" 
    ["GIF Read Support"]=> 
    bool(true) 
    ["GIF Create Support"]=> 
    bool(true) 
    ["JPEG Support"]=> 
    bool(true) 
    ["PNG Support"]=> 
    bool(true) 
    ["WBMP Support"]=> 
    bool(true) 
    ["XPM Support"]=> 
    bool(true) 
    ["XBM Support"]=> 
    bool(true) 
    ["WebP Support"]=> 
    bool(true) 
    ["JIS-mapped Japanese Font Support"]=> 
    bool(false) 
} 
+0

나를 위해 일하는 것 같습니다, 나는 PHP 7.1.1을 실행하고 있습니다. 나는 내부에 코드가있는 작은 이미지를 얻는다. 오류 로그는 무엇을 말하고 있습니까? – xlordt

+0

나를 위해 일하고 7.1을 실행하는 것 같습니다. 예 : [link] (http://i66.tinypic.com/1984i_th.png) –

+0

그리고 PHP 5.4에서도 작동합니다 .. –

답변

0

: 다음은이 사이트에서 gd_info 출력은()이다. 클라이언트는 Dropbox를 사용하여 나와 파일을 공유했습니다. 분명히 Dropbox는 파일을 유니 코드로 변환했습니다. 따라서 이미지 생성 코드가있는 파일은 이미지가 출력되기 전에 BOM을 보내므로 이미지가 손상 될 수 있습니다. 파일의 인코딩을 UTF-8로 변경하면 문제가 해결되었습니다 ...

보고 응답 한 사람에게 감사드립니다.