Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Программирование

Добавить капчу в простой скрипт обратной связи. Защита от спама ботов : Программирование

24.11.2024 15:37


26.03.2015 08:36
Изначально в этом скрипте была строка
SQL код:
<?if ($_POST['email'] =='' && $_POST['message'] ==''){?>
но в похожем скрипте который говорил о том что поле не заполнено и есть капча
начало было таким
SQL код:
<?if (isset($_POST['email'] =='' && $_POST['message'] =='')) else{?><p class="lnknreg">* &ndash; поля обязательны для заполнения.</p><?}?>
я немного посмотрел, нашел сходство, и решил как то комбинировать.
ничего конечно пока не заработало, затем я начал искать сервисы которые могут помочь - проверка синтаксиса
они отчасти помогли - сказали что ошибка синтаксическая
затем по твоей наводке - выяснилось что пропущена скобка.
26.03.2015 08:57
так не то скопировал
код с которого я решил начинать что то похожее делать
начинается
SQL код:
<?if(isset($_POST['error_msg'])){echo $_POST['error_msg'];}else{?><p class="lnknreg">* &ndash; поля обязательны для заполнения.</p><?}?>
а не так как в предыдущем посте
26.03.2015 09:14
Судя по всему, логическая ошибка, пытаешься собрать похожий код из частей вместо того, чтобы сначала придумать алгоритм, которому твой код будет соответствовать.
Еще раз спрашиваю, что ты хочешь сделать в этой строке?
27.03.2015 02:19
Блин как у тебя сил и терпения хватает возится со мной. спасибо
так как мои познания php крайне малы.
но сравнив 2 срипта и посмотрев на их работу, 1 скрипт который сейчас, 2 скрипт который не нужен но делает то что нужно.
я пошел (как мне казалось) логическим путем - не знаешь php найди отличия
в глаза бросилось различие начало кода без isset и с ним.
Открыв гугл, поискав что делает isset я пришел к выводу что функция проверяет было ли заполнено поле, если нет то выводим то что в else
как то так.
27.03.2015 06:43
Вопрос не в том, чтобы понять, что делает второй скрипт.
Вопрос, что ты хочешь получить в итоге?
Только не словами "хочу капчу", а примерно так, надо сравнить значение, которое ввел пользователь в поле ХХХ с значением YYYY.
27.03.2015 07:42
Изначально хотел просто капчу прикрутить.
затем пару раз отправив письмо, я понял что поле имя и емейл можно писать разный бред.
в том числе емейл в виде 11111
получается что нужно проверять имя, емейл и капчу (или как рекомендовал Олег) галочку мол я не бот
27.03.2015 07:46
Я тоже не силен в PHP, поэтому и разбираемся.
Но в твоем коде нет логики, независимо от языка. Во-первых, если выставлена переменная, то ошибка, если нет - другая. Во-вторых, проверь, мне кажется, тебе empty() больше подходит. isset по разному работает в разных версиях PHP и я не уверен, что оно ловит "", т.е. пустую строку. Переменную можно задать пустой, что не подходит в твоем случае, как я могу догадываться.
27.03.2015 07:47
И да, вот еще решение похожей проблемы Антиспам для форума FluxBB
30.03.2015 03:34
Посмотрел, вроде то что нужно, но куда его себе подсунуть ?
не осталось ли полного кода с той темы, что бы хотя бы посмотреть что где стояло и что было изменено для результата.
Вот трюк с галочкой думаю самое то будет
30.03.2015 06:43
Кода не осталось, но это форум FluxBB 1.5.7 был, можешь его скачать и посмотреть, что рекомендовал исправить. Только я не рекомендую идти по пути сравнивания и вычисления разницы. У тебя форма отправки сообщения. Разбери ее. Суть формы в HTML - описание полей типа
<input
<input
<input
<input
когда ты нажимаешь кнопку отправки, все эти поля уезжают в POST или GET - переменные.
Сделай где-нибудь себе пример формы и разбери ее, тогда и поймешь, что куда подсовывать.
Часовой пояс GMT +3, время: 15:37.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.