форма обратной связи

S
На сайте с 10.01.2009
Offline
23
488

Добрый вечер,имеется форма обратной связи,хочу в качестве защиты от спам-ботом добавить поле со сложением чисел,но не знаю как обработать этот в php скрипте,может кто подскажет.Заранее спасибо


<form action="mail.php" name=mailer><table align=left>
<tr><td>Имя:</td>
<td><input type=text name=name maxlength=50 class=pochta size = 40></td></tr>
<tr><td>Сообщение:</td>
<td><textarea name=message cols=40 rows=10 class=pochta></textarea></td></tr>
<tr><td>Защита от спама, 2 + 2 =</td>
<td><input type=text name=spam maxlength=10 class=pochta size = 20></td></tr>
<tr><td class=leftext></td><td><input value="Отправить" type=submit class=butn>
<input name="clear" type="reset" value="Очистить форму" id="clear" /></td></tr></table></form>

<? 

$br = "mail.ru";
mail("мыло", "Тема", "
Имя: $name
Сообщение: $message",
"From: <$email>\nContent-type: text/plain; charset=windows-1251");
Header("Content-type: text/html");
echo "<a href='javascript:history.back()'>НАЗАД</a> "
?>
J
На сайте с 02.02.2009
Offline
53
#1

if($_POST['spam'] == 4)... :DDDDDD

а вообще

session_start();

$_SESSION['answer'] = 0;
$f_digit = rand();
$s_digit = rand();
$_SESSION['answer'] = $f_digit+$s_digit;

соответственно выводишь эти две переменные в плюсе

а в mail.php

session_start();

if($_POST['spam'] != $_SESSION['answer']){
die('Робокоп!"');
}

чёнить такого плана

только современные роботы все равно умеют складывать) Лучше на JS выводить цифры эти, - или картинки рисовать - не знаю - от фантазии зависит

лучше повесь капчу какую-нибудь - типа recaptcha или ещё чего

S
На сайте с 10.01.2009
Offline
23
#2

ну хз, на форум я ставил - помогло,а капчи есть смысл ставить если сам их рисуешь, ибо все капчи выкладываются в инете,следовательно и роботы уже заточены под эти капчи.

А по поводу скрипт спс,ща буду пробывать)

Если вдруг у кого-то ещё будут другие варианты обработки,выкладывайте) пригодится

shpon добавил 13.02.2009 в 01:32

jumash:
if($_POST['spam'] == 4)... :DDDDDD

а вообще
session_start();

$_SESSION['answer'] = 0;
$f_digit = rand();
$s_digit = rand();
$_SESSION['answer'] = $f_digit+$s_digit;


соответственно выводишь эти две переменные в плюсе

а в mail.php

session_start();

if($_POST['spam'] != $_SESSION['answer']){
die('Робокоп!"');
}


чёнить такого плана

только современные роботы все равно умеют складывать) Лучше на JS выводить цифры эти, - или картинки рисовать - не знаю - от фантазии зависит
лучше повесь капчу какую-нибудь - типа recaptcha или ещё чего

честно говоря у меня не получилось,постояно выдаёт

'Робокоп!"
,может я куда-то не туда вставил код,помогите а?

shpon добавил 13.02.2009 в 02:09

всё,сделал,оказалось намного проще

if ($spam != 4)

{

echo "ЗАЩИТА ОТ СПАМА";

exit;

}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий