PDA

Просмотр полной версии : Обратная связь, помогите с антиспам.


Graf I
15.04.2008, 20:25
Кто может напишите пожалуйста код с антиспамом.( с цифрами 4+2= типо того)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head profile="http://gmpg.org/xfn/11">
<title>Мониторинг CS 1.6 серверов</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link rel="stylesheet" href="add.css" type="text/css" media="screen" />
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
<div id="root">
<h1 align="left">Обратная Связь </h1>

<?php

// ИЗМЕНИТЕ ЭТИ ДАННЫЕ
$adresat = "admin@kill-first.spb.ru"; //замените на свой e-mail
$status = "Админ"; // замените на свой статус/должность
$msg = "<br><br>Спасибо, ваше сообщение было отправлено.<br>"; //Замените на свое сообщение, выводимое при отправке
if (!isset($_POST['tema']))

// если вы не знаете php/html не изменяйте код ниже:
$you = "$status.";
if ($submit) {
if(eregi("^[a-zA-Z0-9._-]+@[a-z0-9._-]+.[a-z]{2,4}\$",$email))
{
if(empty($name)) echo "Введите ваше имя";
else
{
mail("$adresat", "Мониторинг, Обратная Связь", "Тема: $tema", "От: $name\nАдрес: $email\nСообщение:\n\n$message");
echo "<center><b>$msg<b></center>\n";
}
} else {
echo "E-mail неправильно введен или содержит недопустимые символы. Пожалуйста вернитесь и заполните все поля правильно";
}
}
else {
?>

<form action="<? echo $PHP_SELF?>" method=POST>
<table width=100%>
<tr>
<td width="15%" align="left">&nbsp;<font class="text">Ваше имя :</font></td>
<td width="85%" align="left"><input type=text name=name size=25></td></tr>

<tr>
<td align="left">&nbsp;<font class="text">Тема :</font></td>
<td align="left"><input type=text name=tema size=25></td></tr>

<tr>
<td align="left">&nbsp;<font class="text">Ваш e-mail:</font> </td>
<td align="left"><input type=text name=email size=25></td></tr>
<tr>
<td align="left">&nbsp;<font class="text">Ваше сообщение:</font></td>
<td align="left"><textarea cols=38 rows=6 name=message></textarea>&nbsp;</td>

</tr>
</tr>




</table>
<div align="left">
<input class="panel" name="submit" type=submit value="Отправить">

</div>
</form></font>
<?php
} // end "else" and end of this script)
?>
</table>
</body>

</html>

astrologer
15.04.2008, 20:28
http://captcha.ru/kcaptcha/

Graf I
15.04.2008, 20:47
Как его внедрить в этот скрипт?

.:EnoT:.
16.04.2008, 09:22
Кто может напишите пожалуйста код с антиспамом.( с цифрами 4+2= типо того)
давно ещё брал этот скрипт на ачате, переделывал под себя.
<?php
session_start();
$shrift = 'my.ttf'; #Шрифт TTF
$width = 80; #Ширина изображения
$height = 30; #Высота изображения
$img= imagecreate($width, $height);
$bl = imageColorAllocate($img, 255, 255, 255);
$z1 = mt_rand(0,9);
$z2 = mt_rand(0,9);
if($z1 > $z2)
{
$str = $z1.'-'.$z2.'=';
@$_SESSION['captcha'] = $z1-$z2;
}
else
{
$str = $z1.'+'.$z2.'=';
@$_SESSION['captcha'] = $z1+$z2;
}
$bl = imageColorAllocate($img, rand(0, 100), rand(0, 100), rand(0, 100));
imageTtfText($img, 15, rand(-10,10), 0, 15, $bl, realpath($shrift), $str);
header("Content-type: image/jpeg");
imagejpeg($img);
?>
Простой до ужаса, выводит два числа которые нужно сложить или вычесть, юзеру нужно ввести результат.
Вызывается соответственно:
<img src="script_name.php" alt="" border="0" />
<input type="text" name="img" />

а ещё лучше добавлять случайное число, чтобы картинка не кешировалась.
Проверяется так:
<?php
$img = $_POST['img'];
if(intval($img) != $_SESSION['captcha'])
{
echo 'Сумма с картинки введена неправильно';
}
else
{
echo 'OK';
}
?>