D
D
dobryshkin2015-08-07 18:36:58
PHP
dobryshkin, 2015-08-07 18:36:58

Image contains errors, w3captcha?

I use all the sources from w3box.ru/captcha I
changed only the paths, but the picture is not displayed, if you open the captcha.php script itself, I
c43070686ce54d178677c90b4cc6d14c.PNG
open the html file of the
e952d3c49da3409a9be32390ee7b0785.PNG
source:
cap.html

<form action="cap.php" method="post">
<img src="captcha.php" /><br />
Текст на картинке: <input type="text" name="captcha" /><br />
<input type="submit" name="submit" value="Проверить" />
</form>

cap.php
<?php
session_start();
if (isset($_SESSION["captcha"]) && $_SESSION["captcha"]===$_POST["captcha"])
echo "Текс введен верно";
else echo "Текст введен не верно";
unset($_SESSION["captcha"]);
?>

captcha.php
<?php

/*

w3captcha - php-скрипт для генерации изображений CAPTCHA
версия: 1.1 от 08.02.2008
разработчики: http://w3box.ru
тип лицензии: freeware
w3box.ru © 2008

*/
session_start();

$count=5;	/* количество символов */
$width=100; /* ширина картинки */
$height=48; /* высота картинки */
$font_size_min=32; /* минимальная высота символа */
$font_size_max=32; /* максимальная высота символа */
$font_file="Comic_Sans_MS.ttf"; /* путь к файлу относительно w3captcha.php */
$char_angle_min=-10; /* максимальный наклон символа влево */
$char_angle_max=10;	/* максимальный наклон символа вправо */
$char_angle_shadow=5;	/* размер тени */
$char_align=40;	/* выравнивание символа по-вертикали */
$start=5;	/* позиция первого символа по-горизонтали */
$interval=16;	/* интервал между началами символов */
$chars="0123456789"; /* набор символов */
$noise=10; /* уровень шума */

$image=imagecreatetruecolor($width, $height);

$background_color=imagecolorallocate($image, 255, 255, 255); /* rbg-цвет фона */
$font_color=imagecolorallocate($image, 32, 64, 96); /* rbg-цвет тени */

imagefill($image, 0, 0, $background_color);

$str="";

$num_chars=strlen($chars);
for ($i=0; $i<$count; $i++)
{
  $char=$chars[rand(0, $num_chars-1)];
  $font_size=rand($font_size_min, $font_size_max);
  $char_angle=rand($char_angle_min, $char_angle_max);
  imagettftext($image, $font_size, $char_angle, $start, $char_align, $font_color, $font_file, $char);
  imagettftext($image, $font_size, $char_angle+$char_angle_shadow*(rand(0, 1)*2-1), $start, $char_align, $background_color, $font_file, $char);
  $start+=$interval;
  $str.=$char;
}

if ($noise)
{
  for ($i=0; $i<$width; $i++)
  {
    for ($j=0; $j<$height; $j++)
    {
      $rgb=imagecolorat($image, $i, $j);
      $r=($rgb>>16) & 0xFF;
      $g=($rgb>>8) & 0xFF;
      $b=$rgb & 0xFF;
      $k=rand(-$noise, $noise);
      $rn=$r+255*$k/100;
      $gn=$g+255*$k/100;		
      $bn=$b+255*$k/100;
      if ($rn<0) $rn=0;
      if ($gn<0) $gn=0;
      if ($bn<0) $bn=0;
      if ($rn>255) $rn=255;
      if ($gn>255) $gn=255;
      if ($bn>255) $bn=255;
      $color=imagecolorallocate($image, $rn, $gn, $bn);
      imagesetpixel($image, $i, $j , $color);					
    }
  }
}

$_SESSION["captcha"]=$str;

if (function_exists("imagepng"))
{
  header("Content-type: image/png");
  imagepng($image);
}
elseif (function_exists("imagegif"))
{
  header("Content-type: image/gif");
  imagegif($image);
}
elseif (function_exists("imagejpeg"))
{
  header("Content-type: image/jpeg");
  imagejpeg($image);
}

imagedestroy($image);

?>

Answer the question

In order to leave comments, you need to log in

1 answer(s)
L
LittleFatNinja, 2015-08-07
@LittleFatNinja

write your captcha generator

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question