вывод сообщения если польз кликает стрелку "назад" в браузере.

greysells

Новичок
вывод сообщения если польз кликает стрелку "назад" в браузере.

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

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

dimagolov

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

ну и ВСЕГДА после POST запросов дела redirect для того, чтобы F5 не приводило к повторной отправки POST формы.
 

greysells

Новичок
dimagolov спасибо за ответ. Я только не совсем понял вашу мысль. возможно я не верно сформулировал вопрос...

цель - повысить удобство для пользователя на сайте. есть для пользователя объемная анкета. вот допустим он ее заполняет... и захотел перейти на другую страницу сайта, а потом сразу вернуться назад и продолжить заполнять анкету. Что бы набранные пользователем данные полей в анкете сохранялись, при сабмите они сохраняются в сессии. Но как мне их сохранить, если пользователь захочет кликнуть на любую другую ссылку , постовские значения то не сформируются.
-----------------------------------------------------------
НАПРИМЕР: набрал он свое "имя" в поле и кликнул на "главная", просто так... почитать, а потом решил продолжить заполнение , снова кликнул на "анкета" , а там в поле "имя" уже присутствует его имя. ))
-----------------------------------------------------------
куда бы значения сохранить если не кликнут сабмит?
 

weregod

unserializer
Автор оригинала: greysells
куда бы значения сохранить если не кликнут сабмит?
если пользователь не кликнул сабмит, значит он не хочет заполнять анкету.
можно добавить кнопку "отложить заполнение".
 

greysells

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

Но вот загвоздка... нужно сделать что бы поля "образование" добавлялись по мере надобности. Если у пользователя несколько образований например. Очень не хочется впутывать Js так очень мало в нем знаю.

Пока в голову пришла идея отдельную форму для этого с кнопкой (submit) "добавить" которая будет написанное пользом сохранять- выводить ниже на экран. а поле вновь будет пустое для следующей записи.

Но ведь сабмит обновит страницу и данные из форм исчезнут...
 

Фанат

oncle terrible
Команда форума
сабмит отправит данные на сервер, где они запишутся в сессию, откуда спокойно пойдут обратно в форму
не вижу никакой проблемы с сабмитом.

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

greysells

Новичок
задачу решил с помощью js и css.
использовал вот эти две функции:
----------------------------------------------
<script>
function hide(nodeId)
{
var node = document.getElementById(nodeId);
if (node)
{
node.style.display = 'none';
}
}

function show(nodeId)
{
var node = document.getElementById(nodeId);
if (node)
{
node.style.display = 'block';
}
}
</script>
-----------------------------------------------------------
простенько и работает)
 

x-yuri

Новичок
ты создал много "образований" и показываешь их по мере надобности?
 

greysells

Новичок
да, 5 шт. согласен, что лучше бы как то цикле... а то объемно получилось.
 

x-yuri

Новичок
лучше создавай по мере надобности: тебе поможет createElement, innerHTML, appendChild
 
Сверху