Xwab
Форумыnavigate_nextПрограммирование на PHP

Captcha(Капча)
Сообщения
Istsam

Вот нашёл такой скрипт капчи
<?php
$r=rand(1000000,9999999);

for($i=0;$i < 7;$i++) //разбиваем секретный код на массив чисел
$arr[$i]=substr($r,$i,1);

$im=imagecreate(130,40); //создаем картинку
imagecolorallocate($im,255,255,255);
$a=0;
for($i=0;$i < 7;$i++) //наносим код на картинку
{
$color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagestring($im,rand(2,9),$a+=15,rand(0,20),$arr[$i],$color);
}
header("Content-type: image/jpeg");
imagejpeg($im,'',100); //выводим капчу
?>
Потом сделал:
Капча: <img src="incfiles/captcha.php"><br/>
Введите капчу: <input type="text" name="captcha" value="" size=7><br/>
Как мне сделать проверку, правильно/не правильно?
Файл обработчик : SendComments.php
P.S.Напишите пожалуйста, код проверки.

17 Дек 2010, 13:41
Istsam

я так думаю, надо в начале файла сделать
session_start();?

17 Дек 2010, 13:42
mixlion

Istsam, в скрипт капчи цифры надо посылать сессией, то есть $_SESSION['kod'] = mt_rand(111111,999999); и в самой капчи тогда написать $r = $_SESSION['kod'] .а проверять тогда if($_POST['captcha']!=$_SESSION['kod'])exit('you bot'); не забывай включать сессии

17 Дек 2010, 13:44
Istsam

вот скрин капчи

17 Дек 2010, 13:44
Istsam

не, всё равно заносится в бд.
даже если капча введена не правильно

17 Дек 2010, 13:51
mixlion

сессии включил? проверь передается ли значение $_SESSION['kod']

17 Дек 2010, 13:53
Istsam

вот архив с 3-мя файлами
AddComents.php-форма ввода
SendComments.php-обработчик
Captcha.php-скрипт капчи

17 Дек 2010, 13:54
Istsam

в моём случае это так
<input type="text" name="captcha" action="http://'.$_SERVER['HTTP_HOST'].'/SendComments.php?id='.$id.'" method="post" value="" size=7>

17 Дек 2010, 14:02
Istsam

ввожу капчу правильно, пише что не правильно.
Обработчик:
$captcha = output($_POST['captcha']);
if($captcha!=$_SESSION['kod'])
{
echo'<div class="grey">Капча введена не верно</div>';
exit();
}
else
{
echo'занос в базу';
}

17 Дек 2010, 14:03
Fashion

че это за капча? ее поломать боту - раз плюнуть. делай шум, смещение, разные шрифты, "фоновый" текст

17 Дек 2010, 14:05
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.