2016-02-03 46 views
1

我有一個php腳本從png圖像生成captcha的問題。一切都很好,用ie和鉻。在Firefox瀏覽器中測試腳本時出現問題。由php腳本生成的圖像損壞或在firefox中截斷

我的代碼:

function executeGenerateCaptcha() 
{ 
    header('Content-Type: image/jpg'); 
    // number of characters to type 
    define('NB_CARACTERE', 6); 
    $sImage = imagecreatefrompng(dirname(__FILE__) . '/../captcha/images/fond.png'); 
    $nCpt = 0; 

// possible characters for captcha 
    $aChars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZ'; 

// string generation 
    while ($nCpt < NB_CARACTERE) 
    { 
    $sCaractere   = $aChars{ mt_rand(0, strlen($aChars) - 1)}; 
    $aCaracteres[$nCpt] = $sCaractere; 
    $nCpt++; 
    } 

    $sCode  = null; 
    $iAbcisse  = 0; 
    $iInclinaison = -20; 

// characters generation on image 
    foreach ($aCaracteres as $sCaractere) 
    { 
    $sCode .= $sCaractere; 
    $color = imagecolorallocate($sImage, mt_rand(0, 253), mt_rand(0, 253), mt_rand(0, 253)); 
    imagettftext($sImage, 40, $iInclinaison, 0 + $iAbcisse, 45, $color, dirname(__FILE__) . '/../captcha/images/arial.ttf', $sCaractere); 

    $iAbcisse  = $iAbcisse + 30; 
    $iInclinaison = $iInclinaison - 12; 
    } 

    unset($sCaractere); 
    unset($nCpt); 
    unset($sCaractere); 
    unset($aCaracteres); 

    imagepng($sImage); 

} 

回答

0

解決方案是隻添加 '齊平();'在函數結束時保存生成的圖像。