Jump to content
  • 0

Простая форма на html. Простая защита от роботов.


amv
 Share

Question

Не нашел подобную тему на форуме. И не нашел ответ на вопрос в описании тегов форм.

 

Суть в следующем,повадился на мой сайт какой то долбанный робот и постоянно заполняет форму. Меня запарило каждый раз все это проверять, что бы понять реальная ли идет заявка или робот гадит. Форма простая на html, вот код.

<!-- Начало формы бронирования -->     <form action="formdata.php" method="POST" name="zayavka"><p><label>Введите Ваше имя: <input type="text" name="name" required size="40" maxlength="25"></label> <p4>*</p4></p><br><p><label>Введите Ваш номер телефона: +7 <input type="text" name="tel" required size="25" maxlength="25"></label> <p4>*</p4></p><p>Пожалуйста, вводите код в скобках. Пример: (555) 123-45-67</p><br><br><p><label>Введите Ваш e-mail: <input type="text" name="email" required size="40" maxlength="40"></label> <p4>*</p4></p> <p>Пожалуйста, вводите адрес Вашей почты без ошибок, на него будет отправлен ответ</p><br><br><p>Выберите номер, который Вы желаете забронировать: <p4>*</p4></p><p><select name="room_num" required><option> </option><option>До 3-х человек</option><option>До 4-х человек</option></select></p><br><p>Сколько человек приезжает? <p4>*</p4></p><p>(В каждом номере возможно размещение только 1-го дополнительного места!!!)</p><p><select name="people_num" required><option></option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option></select></p><br><p><label for="from">Дата заезда:</label><input type="text" id="from" name="from" required> <p4>*</p4><label for="to">Дата выезда:</label><input type="text" id="to" name="to" required> <p4>*</p4></p><br><br><p>Нужен ли Вам трасфер? <p4>*</p4></p> <p><select name="transfer" required> <option></option><option>Нет</option><option>Анапа (аэропорт)</option><option>Анапа (ж/д вокзал)</option><option>Крымская (ж/д вокзал)</option><option>Краснодар (аэропорт)</option><option>Краснодар (ж/д вокзал)</option><option>Протока (ж/д вокзал)</option><option>Тоннельная (ж/д вокзал)</option><option>Из другого места...</option></select></p><br><br><p>Какие дополнительные услуги Вам требуются?</p><p><label><input type="checkbox" name="krovatka">Детская кроватка в номер</label></p><br><br><p>Где Вы узнали о нас? <p4>*</p4></p><p><select name="reklama" required> <option></option><option>SeaPortal.ru - Морской Портал</option><option>Голубицкая.ру</option><option>Тамань.ру</option><option>Азур.ру</option><option>С другого ресурса...</option></select></p><br><br><p><label for="text_pole">Если у Вас остались вопросы, ответы на которые Вы не нашли на сайте - пишите. Мы обязательно Вам ответим!</label></p><p><textarea name="vopros" cols="95" rows="20" id="text_pole"></textarea></p><p><input type="reset" name="reset" value="Очистить форму"> <input type="submit" name="submit" value="Отправить"></p>	</form><!-- Конец формы бронирования -->            

Обработчик вот:

<?php$result = mail ("qqq@yqqq.ru","Заявка на бронирование номера","С сайта была отправлена заявка на бронь, со следующими данными:\nИмя: $_POST[name] \nЭлектронная почта: $_POST[email] \nНомер телефона: +7 $_POST[tel] \nХотим забронировать: $_POST[room_num] номер \nНас приезжает: $_POST[people_num] человек \nДата заезда: $_POST[from] \nДата выезда: $_POST[to] \nНужен ли трансфер? $_POST[transfer] \nДетская кроватка: $_POST[krovatka] \nГде Вы узнали о нас? $_POST[reklama] \nДополнительные вопросы: $_POST[vopros]");$result = mail ("amv3d@mail.ru","Please check your mail qqq@qqq.ru","You received a request for reservation. Check your email on amv3d@yandex.ru");header("Refresh: 3; url=http://primehotel.ru/");if ($result) {	echo "<P>Сообщение успешно отправлено.</P>";}else {	echo "<p>Извините, сообщение не было отправлено.</p>";	}echo '<p>Через 3 секунды, Вы будете перенаправлены обратно на сайт.</p>';exit;?>

Есть ли возможность такими же простыми методами сделать поле, в которое нужно вписать какое нибудь конкретное слово, что бы форма отправилась? Капча не нужна, ибо не знаю как ее вставлять. Не программист. Знаний хватило только на такой примитив. Надеюсь, что штатные средства позволят хотя бы на примитивном уровне установить защиту.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

создайте скрытое поле, а в обработчике проверьте заполнено оно или нет. человек не видит. а значит если будет заполнено - это робот.

 

if($_POST['antibot'] != '') {

   die();

}

я обычно так делаю. в большинстве случаев отлично помогает.

 

если не понятно.
то создаете скрытое поле, средствами css скрываете его. например position: absolute; left: -999em;

задаете имя поле, в данном случае antibot

а в обработчике, сразу после получание глобального массива вставляете выше указанный код.
хотя в данном случае можете вставить его сразу после открытия <?php

Edited by raptor-dm
  • Like 1
Link to comment
Share on other sites

  • 0

создайте скрытое поле, а в обработчике проверьте заполнено оно или нет. человек не видит. а значит если будет заполнено - это робот.

 

if($_POST['antibot'] != '') {

   die();

}

я обычно так делаю. в большинстве случаев отлично помогает.

спасибо, попробую. Отличное и простое решение!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy