2012-05-11 4 views
0

Я сделал этот код, который должен показать мне изображение с текстом на нем, но изображение просто не появится. Есть идеи?PHP captcha wont show image

<?php 

    header("Content-type: image/png"); 
    $md5 = md5(microtime() * mktime()); 

    $string = substr($md5,0,5); 

    $captcha = imagecreatefrompng('bg.png'); 

    $black = imagecolorallocate($captcha, 0, 0, 0); 
    $line = imagecolorallocate($captcha,233,239,239); 

    imageline($captcha,0,0,39,29,$line); 
    imageline($captcha,40,0,64,29,$line); 

    imagestring($captcha, 5, 20, 10, $string, $black); 

    $_SESSION['key'] = md5($string); 

    imagepng($captcha); 
    imagedestroy($captcha); 

?> 
+2

Этот код работает для меня. Попробуйте прокомментировать функцию заголовка и посмотреть, не отображаются ли ошибки PHP. – vimist

+0

. Вы также можете заглянуть в журнал ошибок вашего веб-сервера, чтобы проверить наличие ошибок PHP (если в вашем php.ini включен режим «log_errors»). –

+0

У вас установлено расширение GD php? В Debian/Ubuntu: 'apt-get install php5-gd' –

ответ

0

Вы не можете использовать mktime таким образом вы получите следующее сообщение об ошибке Strict standards: mktime() [function.mktime], которая не сделает ваш дисплей изображения

Заменить

$md5 = md5(microtime() * mktime()); 

С

$md5 = md5(microtime() * time()); 

Ваш Выход

enter image description here

+0

yap исправил его по времени, просто пришлось удалить заголовок, чтобы увидеть ошибку. Спасибо. –

+0

Прохладный .... рад, что я смог помочь – Baba

0

Проверьте свой файл журнала ошибок PHP на моем локальном хосте. Я получил несколько ошибок с кодом.

0

Этот скрипт работает правильно на моем localhost.Пожалуйста, проверьте в вашей папке bg.png. потому что если bg.png не найден, он генерирует ошибку.

thanks

0

Он также работает для меня. Вы должны проверить путь вашего изображения

0

Использование:

$captcha = imagecreatefrompng(dirname(__FILE__) . '/bg.png'); 

Вместо:

$captcha = imagecreatefrompng('bg.png');