Избежать повторное создание ноды

Главные вкладки

Аватар пользователя Bezlepkin Bezlepkin 20 апреля 2013 в 19:53

Привет! Человек создает запись (ноду), нажимает отправить. Все хорошо, нода добавлена, но если он нажимает в браузере назад, то попадает опять на ту же форму но заполненую информацией, чуть редактирует и отправляет заного. Создается новая нода, а это не правильно
Как можно этого избежать?

Комментарии

Аватар пользователя sg85 sg85 20 апреля 2013 в 21:57

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

Аватар пользователя Bezlepkin Bezlepkin 20 апреля 2013 в 23:28

Причем тут браузер?
Человек после создания возвращается кнопкой назад дабы подредактировать, хорнаняет а это уже новая нода.

Аватар пользователя sg85 sg85 20 апреля 2013 в 23:41

"Bezlepkin" wrote:
Человек после создания возвращается кнопкой назад дабы подредактировать, хорнаняет а это уже новая нода.

Кнопка "назад" это уже функционал браузера, по сути навигация по истории браузера, к сайту он не имеет никакого отношения.

Аватар пользователя sg85 sg85 21 апреля 2013 в 0:06

Нажимая кнопку "назад" вы попадаете на страницу в её состояние перед самой отправкой данных формы, тут даже никакой аякс не поможет. А еще можно нажать правую кнопку на кнопке назад и перескочить несколько пунктов))

Аватар пользователя Niklan Niklan 21 апреля 2013 в 0:42

"Bezlepkin" wrote:
Причем тут браузер?

При том что он восстанавливает предыдущее состояние при возвращении назад, а не друпал форма

Аватар пользователя sg85 sg85 22 апреля 2013 в 7:06

Да нет, тут при заполнении формы и нажатии "сохранить" создается нода, и если автора что-то не устраивает, нажимает в браузере кнопку "назад"(видимо считают, что кнопка "редактировать" сделана для нубов), попадает на страницу СОЗДАНИЯ ноды с заполненными полями и аяксом с откатом на момент нажатия кнопки "сохранить", правит 2 строчки и искренне верит, что это форма РЕДАКТИРОВАНИЯ материала, после чего нажимает кнопку "сохранить" и естественно создается новый материал, для человека, не знакомого с веб технологиями и вообще не представляющему принцип работы браузеров это кажется ненормальным, мне вот интересно, при операциях с банковскими картами люди тоже всегда жмут "Назад" а потом повторить?

Я вижу всего пару вариантов решения проблемы:
1. Некая гневная надпись, на которую все равно почти никто не будет смотреть.
2. Вариант товарища qwiste, только через дополнительную валидацию формы проверять время последнего создания ноды этим автором, и выводить гневные сообщения о попытке спама.
3. Можно так же удалять предыдущую ноду, если новая создается с промежутком менее 5 минут, но это уже может вызвать батхерт среди нормальных спамеров пользователей.
4. Можно альтернуть форму и переименовать кнопку "Сохранить" в "Создать новый материал", через интерфейс перевода этого делать НЕЛЬЗЯ иначе у Вас надпись "Создать новый материал" будет по всюду.

Наиболее логичным и полезным кажется применение 2 и 4 вариантов одновременно.

А вообще, вроде бы не все браузеры сохраняют состояние полей при переходах по истории.

Аватар пользователя drupby drupby 22 апреля 2013 в 18:01

джаваскриптом можно запретить нажатие кнопок браузера(гугл знает как) и подключать этот скрипт на нужных страницах

Аватар пользователя sg85 sg85 24 апреля 2013 в 3:34

"Bezlepkin" wrote:
это можно, но я такого не встречал. Нормально ли это воспримут?

когда лично я захожу на сайт, где запрещены какие либо функции браузера, я обычно от туда сразу ухожу, ибо по мне, это как в прокуренном тамбуре поезда.