2011-03-11 47 views
2

我試圖做一個驗證碼,我在線閱讀一些教程。所以,我有複製/粘貼此功能:PHP - ImageCreate()錯誤

create_image(); 
exit(); 

function create_image() { 
    //Let's generate a totally random string using md5 
    $md5_hash = md5(rand(0,999)); 
    //We don't need a 32 character long string so we trim it down to 5 
    $security_code = substr($md5_hash, 15, 5); 

    //Set the session to store the security code 
    $_SESSION["security_code"] = $security_code; 

    //Set the image width and height 
    $width = 100; 
    $height = 20; 

    //Create the image resource 
    $image = ImageCreate($width, $height); 

    //We are making three colors, white, black and gray 
    $white = ImageColorAllocate($image, 255, 255, 255); 
    $black = ImageColorAllocate($image, 0, 0, 0); 
    $grey = ImageColorAllocate($image, 204, 204, 204); 

    //Make the background black 
    ImageFill($image, 0, 0, $black); 

    //Add randomly generated string in white to the image 
    ImageString($image, 3, 30, 3, $security_code, $white); 

    //Throw in some lines to make it a little bit harder for any bots to break 
    ImageRectangle($image,0,0,$width-1,$height-1,$grey); 
    imageline($image, 0, $height/2, $width, $height/2, $grey); 
    imageline($image, $width/2, 0, $width/2, $height, $grey); 

    //Tell the browser what kind of file is come in 
    header("Content-Type: image/jpeg"); 

    //Output the newly created image in jpeg format 
    ImageJpeg($image); 

    //Free up resources 
    ImageDestroy($image); 
} 

但是,當我嘗試調用它,我得到這個錯誤:

致命錯誤:調用未定義功能ImageCreate()在C:\ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs \ gtw \ registration \ createCaptcha.php on line 19

什麼問題?一些PHP庫?

+0

似乎是這樣。你是否安裝了GD(例如它是否在你的PHP信息中)? – 2011-03-11 15:09:37

回答

1

php_gd2擴展未啓用。

它包含在Windows PHP發行版中,但必須在php.ini中啓用它。要做到這一點,只需打開php.ini並取消註釋(刪除前面的;)以下行:

extension=php_gd2.dll 

保存,重啓Apache,你應該罰款。

+0

我的php.ini文件中沒有這一行 – keen 2013-12-12 12:37:27

1

爲了能夠使用ImageCreate,您需要將GD Library作爲PHP安裝的一部分。

使用phpinfo()函數檢查它是否已安裝。如果沒有,你需要添加這個。