Валидация формы по IP. Одна заявка с одного IP. How to do?
Суть описана в заголовке. Условно, есть форма, которая перед отправкой должна проверить не отправляли ли с этого IP форму ранее, если отправляли то вместо формы должна быть надпись.
Ничего подобного не нашел в интернете. Есть идеи?
Алгоритм такой:
1. На сервере получаете IP клиента, запросившего страницу с формой
2. Смотрите в БД нет ли такого IP
3. Если есть, вставляете в страничку сообщение, если нет форму
4. Отправляете страничку клиенту
5. Если пришли данные от заполненной формы то выполняете пункты 1,2
6. Если есть, посылаете клиента нафиг, если нет, вносите в БД его IP
twentytvvo, Учти то, что на мобилах ip меняется постоянно! Тоесть я перезагружаю свой тел, и ip другой! Я бы сделал куки! но, куки можно почистить! Но самый хороший способ сделать регистрацию!
Так а что у тебя не получается? Тебе готовый код надо написать?
coderhs.com/archive/golos-opros-simple
Идеально подошло, только php не в слепую копируйте, там есть пару ошибок.
Например там где парсится ip, надо поменять с server на remote, потому что скрипт парсит ip сервера на котором выполняется скрипт.
После того как человек отправил форму, делаешь чтобы его IP записывался в бд например. $_SERVER['REMOTE_ADDR']
Создай базу id и ip например.
Дальше проверяй в том же бд если человек уже отправил то сделай чтобы не отправлял во второй раз.
$ip = $_SERVER['REMOTE_ADDR'];
$sql = $db->query("SELECT * FROM ip WHERE ip = '$ip'");
if(mysqli_num_rows($sql) > 0)
{
echo "Вы оставляли заявку"
} else {
echo "Форма которую нужно заполнить";
}
Just don't do it.
Мобильные сети с одними и теми же айпишниками; домашние провайдеры, уверенно приходящие к тому же; прокси, VPN; анонимайзеры; Тор.
Айпишник давно уже никак не привязан к пользователю, и такая "защита" - просто впустую потраченное время.