Помогите с защитой

peshkov

Новичок
Помогите с защитой

Мне необходимо зделать обычную защиту цифрами от авторегистраций
подскажите пожалуйста где почитать или естли уже готовые бесплатные скрипты
 

peshkov

Новичок
http://script.woweb.ru/index.htm/id/1067522342 - вот здесь можноскачать(для тех кто будет искать этопосле меня)
 

mpopov

Новичок
Мне тоже необходимо именно это, по совету скачал рекомендованный скрипт, вроде там все сделано правильно, но у меня не отображается сама картинка! Кто-нибудь может поможет разобраться, ПОЧЕМУ!!!

А может кто знает что-то подобное?
 

mpopov

Новичок
ситуация следующая:
имею mail форму, хочу прикрепить однавреммено проверку captcha, но как это сделать не знаю!
У меня есть два скрипта:
1. форма php

<?
$mailto="[email protected]";
if (empty($ok))
{
?>

<form action="<?echo $PHP_SELF;?>" method="post">
<table class="white">
<tr>
<td align="right">* Ваше имя:</td>
<td> <input type="text" name="username" size="30" maxlength="20"></td>
</tr>
<tr>
<td align="right">* Телефон:</td>
<td> <input type="text" name="tel" size="30" maxlength="20"></td>
</tr>
<tr>
<td align="right">E-mail адрес:</td>
<td><input type="text" name="mailfrom" size="30" maxlength="50"></td>
</tr>
<tr>
<td align="right">Дата мероприятия:</td>
<td><input type="text" name="date" size="30" maxlength="50"></td>
</tr>
<tr>
<td align="right">* Заявка <br>(в свободной форме):</td>

<td><textarea cols="50" rows="10" name="question"></textarea></td>
</tr>
</table>
<input type="submit" name="ok" value="отправить">
</form>


<?
}
else
{

if (empty($tel))
{
$error .= "Не заполнено поле: <b>Телефон</b><br>";
}

if(!preg_match("/^([a-z,0-9])+@([a-z,0-9])+(.([a-z,0-9])+)+$/", $mailfrom))
{
$error = "Не верно заполнено поле: <b>E-mail</b><br>";
}


if (empty($question))
{
$error .= "Не заполнено поле: <b>Ваш вопрос</b><br>";
}

if ($error)
{
echo $error;
echo "<br><a href=\"javascript:history.go(-1)\" class=\"text\">Вернуться назад</a>";
echo "&nbsp;|&nbsp;<a href=\"javascript:window.close()\">Закрыть окно</a>";
exit;
}


$subject="Заказ от $mailfrom";
$body="Имя:
$username

Телефон:
$tel

E-mail:
$mailfrom

Дата мероприятия:
$date

Комментарии:
$question";


$body=convert_cyr_string (stripslashes($body),w,k);
$subject=convert_cyr_string (stripslashes($subject),w,k);
$sucess = mail($mailto, $subject, $body, "From: $email
X-Mailer: PHP/" . phpversion());


if ($sucess)
{
echo "Спасибо. Ваша заявка отправлена, мы свяжемся с вами в ближайшее время.<br><br>";
echo "<a href=\"javascript:history.go(-1)\" class=\"text\">Вернуться назад</a>";
echo "&nbsp;|&nbsp;<a href=\"javascript:window.close()\">Закрыть окно</a>";
}

}
?>


2. работающая captcha.php


<?
session_start ();

switch ($a) {
case 'image':
$im = @imagecreate (80, 20) or die ("Cannot initialize new GD image stream!");
$bg = imagecolorallocate ($im, 232, 238, 247);
$char = $_SESSION['code'];

//создаём шум на фоне
for ($i=0; $i<=128; $i++) {
$color = imagecolorallocate ($im, rand(0,255), rand(0,255), rand(0,255)); //задаём цвет
imagesetpixel($im, rand(2,80), rand(2,20), $color); //рисуем пиксель
}

//выводим символы кода
for ($i = 0; $i < strlen($char); $i++) {
$color = imagecolorallocate ($im, rand(0,255), rand(0,128), rand(0,255)); //задаём цвет
$x = 5 + $i * 20;
$y = rand(1, 6);
imagechar ($im, 5, $x, $y, $char[$i], $color);
}

/*/упрощённый вариант
$color = imagecolorallocate($img, 0, 0, 0);
imagestring($im, 3, 5, 3, $char, $color);*/

//антикеширование
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

//создание рисунка в зависимости от доступного формата
if (function_exists("imagepng")) {
header("Content-type: image/png");
imagepng($im);
} elseif (function_exists("imagegif")) {
header("Content-type: image/gif");
imagegif($im);
} elseif (function_exists("imagejpeg")) {
header("Content-type: image/jpeg");
imagejpeg($im);
} else {
die("No image support in this PHP server!");
}
imagedestroy ($im);
break;
case 'submit':
//проверка кода
if (empty($_GET['code']) or empty($_SESSION['code'])) {
echo 'Вы не указали код подтверждения';
} elseif ($_GET['code'] != $_SESSION['code']) {
echo 'Код подтверждения не совпадает';
} else {
echo 'Всё Ok!';
}
break;
default:
$_SESSION['code'] = substr(md5(uniqid("")),0,4);
echo '<form action="captcha.php" method="get">'.
'<input type="hidden" name="a" value="submit">'.
'<label for="code">Код подтверждения:</label>'.
'<input type="text" id="code" name="code" size="4" maxlength="4">'.
'<img align="absmiddle" src="captcha.php?a=image">'.
'<input type="submit" value="Go">'.
'</form>';
break;
}
?>


Как сделать так чтоб отправка формы работала с проверкой captcha?
 
Сверху