@aliasst

Как сделать чтобы посетитель мог отправить заявку с сайта только один раз?

Как сделать чтобы посетитель мог отправить заявку с сайта только один раз? Т.е. заполнил форму, отправил, и второй раз уже нельзя было.. в течении недели допустим
  • Вопрос задан
  • 400 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Нужно понимать что если пользователь не авторизирован (то есть эта функция доступна любому зашедшему на сайт) то реализовать подобное технически нереально. Можно максимально затруднить процесс, но полностью решить проблему нет возможности.
Методы затруднения тут перечислили в основном, я коротко пробегусь по основным:
1) Куки - самый базовый метод, плюсы - простая реализация, для обычных пользователей работает весьма надежно. Минусы - легко обходится любым пользователем который знает как почистить куки или сменой браузера.
2) Эверкуки - продвинутые методы хранения меток на стороне клиента, там целый набор методов, читайте доку к библиотеке. плюсы - простой чисткой кукисов уже не лечится, минус - нужно дополнительно заморочиться, ну и смена браузера емнип сводит все на нет.
3) Фингерпринты - тема обширная, решение достаточно надежное, но основано на статистике, то есть имеет погрешность, которая много от чего зависит. Плюс - хорошо работает в качестве идентификатора, минус - может давать ложные срабатывания и опять же - смена браузера сильно снижает эффективность метода.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
dollar
@dollar
Делай добро и бросай его в воду.
Если пользователь анонимный, то куки. Можно ещё всякие отпечатки браузера использовать.

Если авторизованный, то нужно сделать отдельное поле в базе данных, где и помечать, что пользователь уже отправил форму, а точнее дату отправки, чтобы сравнивать её с текущей каждый раз.
Ответ написан
Комментировать
irishmann
@irishmann
Научись пользоваться дебаггером
Записать данные заявки, дату заполнения и данные посетителя в базу. При добавлении новых заявок смотреть, есть ли у нас точно такая же заявка, если есть сравниваем даты, если совпадает выводим ошибку.
Ответ написан
Комментировать
Atanvar
@Atanvar
Frontend developer
смотреть на куки + IPшник.
(Куки можно очищать, IPШник можно менять.)

Можно смотреть по контенту заявки, если такая есть то тоже блочить.
Ответ написан
Комментировать
@ipokos
Пользователь же указывает какие-то данные (типа тел или мыло) вот его и проверяете.
+ проверки что писали выше (сессии, куки, капчи) - это для чтобы вас не использовали как спам сервер.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы