[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Повторное занесение информации в базу
Parenek34
У меня такой вопрос про регистрацию на сайте. После заполнения формы и нажатия кнопки, когда пользователь переходит на страничку-обработчик данные заносятся в базу, так вот, если эту страничку обновить то у меня данные заносятся вторично, как этого избежать? Хотелось бы, что бы в базу могли вносится одинаковые имена и т.д. это я к слову если делать проверку.
Вобщем как сделать грамотно, чтобы после обновления странички-обработчика данные вторично не вносились?



Спустя 14 минут, 9 секунд (14.08.2009 - 22:03) Gabriel написал(а):
редирект вам в помошь после внесения данных.
PHP
echo "<html><head></head><meta HTTP-EQUIV='Refresh' CONTENT='time to refresh; URL=blablabla.***'></html>";

Спустя 10 часов, 44 минуты, 44 секунды (15.08.2009 - 08:48) Parenek34 написал(а):
Про перенаправление я знаю, но мне бы хотелось без него обойтись rolleyes.gif

Спустя 11 минут, 48 секунд (15.08.2009 - 09:00) Parenek34 написал(а):
И кстати, если вернутся на страничку-обработчик и обновить её то опять же данные повторно заносятся в базу.

Спустя 1 день, 7 часов, 3 минуты, 28 секунд (16.08.2009 - 16:03) Gradus написал(а):
либо капча либо хедером перенапрявляеш,а лучше и то и то сразу

Спустя 1 час, 14 минут, 51 секунда (16.08.2009 - 17:18) sergeiss написал(а):
Parenek34 - ну так и сделай проверку на вводе данных в БД!!!

Если у тебя "дефолтная" БД, то используй конструкцию
SQL
INSERT ..... ON DUPLICATE KEY UPDATE ....

Более подробно синтаксис и описание см. в хэлпе.

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

Спустя 16 часов, 18 минут, 54 секунды (17.08.2009 - 09:37) Gram написал(а):
Одинаковые имена в базе зарегистрированных не есть хорошо. Лучше отправляйте его хедером на ту страницу, с которой он нажал кнопку "Зарегистрироваться", и поприветствуйте там его.

Спустя 6 минут, 54 секунды (17.08.2009 - 09:44) Gram написал(а):
Не заметил, что вы хотите без перенаправления. Тогда при загрузке формы создайте переменную сессии на свое усмотрение, а в обработчике, проверяйте и вносите данные только в случае ее существования. После записи в базу уничтожте идентификатор сессии и повторное занесение будет невозможно. Хотя это тоже не самое то. Лучше всего проверив введенные данные, обратиться к базе, и спросить у нее, есть ли такой пользователь среди уже зарегистрированных, если есть, то вывести сообщение "Данное имя занято".

Спустя 3 дня, 5 часов, 1 минута, 39 секунд (20.08.2009 - 14:46) Parenek34 написал(а):
Я в одном чате видел как эту проблему с помощью графической защиты решили, при обновление странички пишет, что неверно введен код с картинки. Поставил себе тоже одну такую, но она не помогает!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.