2016-08-22 6 views
-4

У меня возникла проблема с созданием образа PHP, содержащего код captcha. В основном это работало нормально, но только сейчас, когда я открыл страницу, я вдруг увидел, что изображение не появляется в первый раз. И это произошло в первый раз. Вот index.php файл, который содержит HTML код:PHP не делает изображение Captcha

<div class="wrapper"> 
    <form name="counter"><input type="text" size="8" name="d2"></form> 
     <form class="login" method="POST" action=""> 
      <p class="title">Are you human?</p> 
      <div id="captchaimage"> 
       <img src="generate.php"> 
      </div> 
      <input type="text" name="scr" size="6" placeholder="Write what you see here" autofocus/> 
      <a href="http://zite.pouyavagefi.com/helpcenter.php">Can not read the code?</a> 
      <input class="submititon" type="submit" value="Submit" name="submit"></input> 
    </form> 
    <footer><a target="_blank" href="http://www.zite.pouyavagefi.com">Zite v2.0</a></footer> 
</div> 

И это generate.php файл, который создает капчу:

<?php 
session_start(); 
header('Content-type: image/jpeg'); 

$text = $_SESSION['secure']; 
$font_size = 26; 
$image_width = 100; 
$image_height = 40; 

$image = imagecreate($image_width, $image_height); 
imagecolorallocate($image,255,255,255); 
$text_color = imagecolorallocate($image,0,0,0); 

for($x=1;$x<=30;$x++){ 
    $x1 = rand(1, 100); 
    $y1 = rand(1, 100); 
    $x2 = rand(1, 100); 
    $y2 = rand(1, 100); 

    imageline($image, $x1, $y1 ,$x2 ,$y2, $text_color); 
} 

imagettftext($image, $font_size, 0, 15, 30, $text_color, 'font.ttf', $text); 
imagejpeg($image); 
?> 

И это экран печати моей страницы:

print screen

Серьезно, я не знаю, что происходит на земле, потому что все выглядит идеально, и оно работает нормально! Поэтому, если вы знаете, в чем проблема, сообщите мне. Благодаря

+0

Что произойдет, если вы запросите файл 'generate.php' непосредственно в вашем браузере? Что он отображает? – richsage

+0

Когда я открыл файл generate.php, изображение не появляется. Но ошибок не появляется, и печать ошибок уже включена. – Pouya

+0

Удалить 'header ('Content-type: image/jpeg');' видеть ошибки, если они есть. Особенно проверьте переменную сеанса! –

ответ

0

Ваша проблема здесь:

<?php 
session_start(); 
header('Content-type: image/jpeg'); 

Этот разрыв до <?php вызывает session_start бросить ошибку. Вы должны иметь НЕТ ПРОСТРАНСТВ ИЛИ ДРУГОГО ПРОИЗВОДИТЕЛЯ BROWSER перед функцией session_start (и другим заголовком).

Вы также действуете с пропуском 4/5 пробелов в качестве начала потока данных файла изображения, что, очевидно, приведет к сбою отображения изображения.

Смежные вопросы