![]() |
Добавить проверочный код в форму.
Подскажите, пожалуйста, как добавить простой проверочный код в форму отправки сообщения? Желательно без php, HMTL и cgi.
|
На HTML проверочных кодов не бывает, только на JavaScript. CGI это вообще не из той оперы, так как PHP тоже может работать через CGI. А теперь к делу - какой проверочный код? :)
|
Мне нужно вставить код-картинку с проверкой для отправной формы, чтобы нельзя было отправлять сообщения в гостевую книгу автоматом. Зафлудили гады всё жутко. Не успеваю удалять.
|
В принципе можно сделать и с JavaScript....
Самое простое наверное, нарисовать 10 картинок с надписями от 0 до 9 (лучше даже несколько экземпляров одной цифры), потом при выводе на экран вызываешь функцию типа rand (думаю в яваскрипте она есть), и запоминаешь те цифры, которые тебе дал rand (или несколько rand'ов), затем выбираешь нужные картинки, выводишь их на экран пользователю для того, чтобы он ввел код, чтобы проверить правильный ли он код ввел нужно сделать <form onSubmit="function();"> где function - функция на яваскрипте, проверяющая правильность ввода информации... Все это хорошо действует, только если пользователь отключит яваскрипт, то все это обходится, надежнее (и правильнее делать на php), по сути тоже самое, только проверка происходит на стороне сервера, т.е. клиент не может получить доступ к исходникам самой проверки :) |
Боты не выполняют js. Поэтому ф-ия проверки на js даже вызвана не будет.
Чтобы не флудили, просто переименуй скрипт, который добавляет новое сообщение. Это поможет на некоторое время. |
Цитата:
Я попробовал бы вставить и Java, и php, но я в них ничего не понимаю. Может видел кто-то уже готовый код php или Java для вставки? |
Раз ничего не понимаешь, просто выбери другую гоcтевую книгу в описании которой есть "flood protection":
http://www.hotscripts.com/PHP/Script...oks/index.html |
У меня там 36 разделов. Я ищу простое решение - вставить код в шаблон, что-то чуток поправить и всё.
Менять всю систему - это слишком. |
Простого решения здесь нет. Как минимум это ручная правка кода, и добавление туда необходимой функциональности.
|
RaZEr, это как раз устраивает. Не попадался готовый вариант подобного кода?
|
Цитата:
Тоесть, почти то же что написал Naked, только не при сабмите проверять циферки, а функцией проверять циферки и сабмитить форму уже в ней, если правильно. Таким образом получим какраз простую защиту, если <input type=submit...> заменим на <input type=button onclick="какраз функция проверки и сабмита"...>. Тоесть конечно, защита это обойдется, если какой-то робот захочет парсить JS код и разбирать его.... но нужно ли это какому-то спамеру, если гостевая небольшая. Скорее всего они спамят просто "наширокую", по скрипту гостевой... |
Погоди, боты ведь даже не смотрят страницу с формой. Они просто формируют POST и кидают его серверу. То есть, без серверной проверки получаемых данных не обойтись.
|
Цитата:
|
Hubbitus
Цитата:
Код прилагаю: Цитата:
|
Думаю, что имелось следующее - между тегами <form> и </form> вписывается такой кусочек кода (куда-нибудь) :
Цитата:
В самом начале можно сделать яваскрипт: <script> document.main.test.value = 1; </script> А соответственно в процедуре test(); проверять чему равно значение test: <script> test (){ if (document.main.test.value==1) return true; return false; } </script> Только это не от чего не спасает, ибо если отключен яваскрипт, то вся эта проверка -коту под хвост:) а если посылается прямо прямым запросом, то действительно только на сервере и можно проверить.. но если это сделать с яваскритом через hidden параметр, как я написал выше, то получится уже неплохая защита.... :yees: |
Цитата:
|
Цитата:
gost2, показал бы хотябы свою гостевую (адрес), что мы беспредметный разговор ведем. И в PHP-код полюбому придется внести исправления тоже, хотя и минимальные. |
Hubbitus, я думал, что этого фрагмента достаточно. Сама книга вот: http://www.helpnic.agava.ru/cgi-bin/...ok.pl?banner-1
|
Ну я правда рассчитывал немного на другое, но уд ладно.
Итак, в кратце о чем я говорил: Там в форме есть параметр (который ты какраз и не привел выше) - <input type=hidden name=book value=banner>, от него зависит куда именно постится сообщение. Дак вот, простейшую защиту я предлагал на JS организовать следующим образом. Предполагается что без этого параметра (или с неверным), сообщение не может попасть в гостевую. Значит тогда НЕ записываем в него значение на стороне сервера (что там у Вас, PHP, PERL?), а оставляем просто пустым (ну или скажем инициализируем каким-то другим значением, скажем так: <input type=hidden name=book value=SPAM>), а дальше, при проверке каких-то условий на JS, пусть тех же картинок как предлагалось выше, тогда только, средствами JS присвоим нужное значение. Таким образом, получается что просто запрос на постинг от робота, не выполняющего JS, не приведет к посту. Повторяю и еще раз обращаю внимание: Естественно это простейшая защита, если какому-то роботу понадобится это обойти, то просто посмотрят как защита организована на JS, и обойдут. Однако, врядли эта гостевая будет кому-то так нужна, чтобы менять алгоритмы, скорее всего большинство просто выбросит адрес из СПАМ-листа. |
Да, мне нужна именно простая защита. Именно то о чём ты говоришь. Но я так и не понял как конкретно это организовать.
|
| Часовой пояс GMT +4, время: 10:35. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.