2017-03-19 3 views
1

Je viens de déplacer un site vers un nouveau serveur exécutant PHP 7. Il était à l'origine sur PHP 5.4, je crois. L'URL suivante devrait afficher une image avec un code, comme un captcha:L'image dynamique PHP ne s'affiche pas correctement

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

Lorsque cette URL est frappé, le code suivant est RAN:

$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(); 

Il fonctionnait très bien sur l'ancien serveur. Je me suis assuré que la bibliothèque PHP GD est installée et que le module a été activé, et je l'ai vérifié encore et encore ... mais, je reçois toujours une petite image vide. Des idées?

Merci

Edit: Voici la sortie de gd_info() à partir de ce site:

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

Semble fonctionner pour moi, je cours php 7.1.1. Je reçois une petite image avec le code à l'intérieur. Que dit le journal des erreurs? – xlordt

+0

Il semble fonctionner pour moi aussi, et en cours d'exécution 7.1. Exemple: [link] (http://i66.tinypic.com/1984i_th.png) –

+0

et il fonctionne aussi sur php 5.4 .. –

Répondre

0

Je me répondre parce que, après des heures et des heures, j'ai trouvé le problème. Le client a partagé les fichiers avec moi en utilisant Dropbox. Apparemment, Dropbox a converti les fichiers en Unicode. Ainsi, le fichier contenant le code de génération d'image envoyait une nomenclature avant la sortie de l'image, ce qui donnait l'impression que l'image était corrompue. Changer le codage du fichier en UTF-8 a résolu le problème ...

Merci pour le temps de ceux qui ont vu et ont répondu.