Перейти к публикации

Распознавание повторных заявок.


Рекомендованные сообщения

Всем привет привет.

Нужна помощь с кодом. 

Есть форма заявки, где люди заполняют свои данные, ФИО, адрес, паспорт ИНН и т.д. и отправляют эту заявку.

Стоял у нас код, что бы люди с повторяющимися данными, не могли больше подать заявку: 

if(!empty($forms_status)){

echo "Заявка уже подана!";

exit;}

Начались проблемы, что у новых пользователей, которые впервые подают заявку, выходит данная ошибка. Я ошибку временно убрал.

Теперь прошу помощи разобраться, к чему привязана данная проверка "$forms_status", это оно? ЧТо это вообще?))

И как можно привязать проверку, например к строке ИНН?

Ссылка на сообщение
Поделиться на других сайтах

Сначала надо получить значение из поля ИНН, потом сделать проверку в БД на наличие такого значения. И потому уже давать отлуп, если такое поле есть Что-то вроде, если грубо

$inn = intval($_POST['inn']); // Значение из формы поля ИНН

$count_inn = $db->super_query("SELECT COUNT(*) AS count  FROM " . PREFIX . "_table WHERE inn = '{$inn}' "); //Смотрим, есть ли в БД такой ИНН

//и если есть убиваем
if ($count_inn) {
	echo "Заявка уже подана!";
	exit;
}else{
тут делаем чтото, если такого ИНН нет
}

Это очень грубо, но принцип понятен

Ссылка на сообщение
Поделиться на других сайтах
25 минут назад, alex32 сказал:

Сначала надо получить значение из поля ИНН, потом сделать проверку в БД на наличие такого значения. И потому уже давать отлуп, если такое поле есть Что-то вроде, если грубо


$inn = intval($_POST['inn']); // Значение из формы поля ИНН

$count_inn = $db->super_query("SELECT COUNT(*) AS count  FROM " . PREFIX . "_table WHERE inn = '{$inn}' "); //Смотрим, есть ли в БД такой ИНН

//и если есть убиваем
if ($count_inn) {
	echo "Заявка уже подана!";
	exit;
}else{
тут делаем чтото, если такого ИНН нет
}

Это очень грубо, но принцип понятен

Спасибо. Я вот сделал, немного отличается от твоего, потому что я сделал по примеру как было у меня ранее. Как считаешь всё ок?

 

$inn = $_POST["i_1523986318899"];


$forms_status = $db->super_query( "SELECT status FROM " . PREFIX . "_kylform WHERE data LIKE '%\"i_1523986318899\":\"{$inn}\"%' AND status != '2'" );

if(!empty($forms_status)){
            echo "Введены некорректные данные. Повторите попытку, или обратитесь в учреждение!";
            exit;
        }

 

Изменено пользователем Danteky
Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, alex32 сказал:

Сначала надо получить значение из поля ИНН, потом сделать проверку в БД на наличие такого значения. И потому уже давать отлуп, если такое поле есть Что-то вроде, если грубо


$inn = intval($_POST['inn']); // Значение из формы поля ИНН

$count_inn = $db->super_query("SELECT COUNT(*) AS count  FROM " . PREFIX . "_table WHERE inn = '{$inn}' "); //Смотрим, есть ли в БД такой ИНН

//и если есть убиваем
if ($count_inn) {
	echo "Заявка уже подана!";
	exit;
}else{
тут делаем чтото, если такого ИНН нет
}

Это очень грубо, но принцип понятен

Всё спасибо за подсказочку. Вот как я выше написал, сделал немного по своему, всё работает)))) 

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, alex32 сказал:

Сначала надо получить значение из поля ИНН, потом сделать проверку в БД на наличие такого значения. И потому уже давать отлуп, если такое поле есть Что-то вроде, если грубо


$inn = intval($_POST['inn']); // Значение из формы поля ИНН

$count_inn = $db->super_query("SELECT COUNT(*) AS count  FROM " . PREFIX . "_table WHERE inn = '{$inn}' "); //Смотрим, есть ли в БД такой ИНН

//и если есть убиваем
if ($count_inn) {
	echo "Заявка уже подана!";
	exit;
}else{
тут делаем чтото, если такого ИНН нет
}

Это очень грубо, но принцип понятен

Кстати, а скажи во второй строчке, где у тебя "название базы"? Дело в том что у меня несколько баз, и нужно чтоб проверка была из второй базы. А код проверяет как то общую базу, из обеих.

Ссылка на сообщение
Поделиться на других сайтах

в файле /ebgine/data/dbconfig.php подключение к БД и объявляется объект класса db. 

Ссылка на сообщение
Поделиться на других сайтах

Danteky, вы принимаете персональные данные от пользователей вашего сайта (https://work.noyamolod.ru), если конечно это ваш, при этом в коде - "немного плаваете", не задумывались, если получится так, что когда-нибудь за утечку данных, вы можете запеть фальцетом от 152-ФЗ?

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, proba сказал:

Danteky, вы принимаете персональные данные от пользователей вашего сайта (https://work.noyamolod.ru), если конечно это ваш, при этом в коде - "немного плаваете", не задумывались, если получится так, что когда-нибудь за утечку данных, вы можете запеть фальцетом от 152-ФЗ?

В коде я плаваю, потому что я "помощник" главного программиста. Второй пилот так сказать, Так что я не лезу туда, где бьёт током. Спасибо за предупреждение)))

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...