Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Запрет на "возвращение" назад

Ответить
Настройки темы
Запрет на "возвращение" назад

Новый участник


Сообщения: 38
Благодарности: 2

Профиль | Отправить PM | Цитировать


Появился вопрос, который пока так и не смог решить в полной мере. Делал систему проверки знаний и появилась потребность запретить пользователю возвращаться назад. Как один из вариантов можно конечно использовать обработчик:
Код: Выделить весь код
onclick="location.replace('test.html');">meet Billy</a>
Но во превых мне готовая ссылка ни к чему, так как у меня всё построено на формах. Поэтому открытие новых страниц происходит при нажатии на кнопку "Submit".
Можно конечно (или нет?) сделать так чтобы страницы открывались каждый раз в новых окнах. При этом история будет удаляться.
Можно конечно открывать весь мой сайт в окошке безо всяких панелей, использую JavaScript.
Жду ваших идей по этому поводу. И если не трудно, то напишите полный синтаксис команды JavaScript для открытия страниц в новом окне. Заранее спасибо

Отправлено: 22:32, 11-05-2007

 

Deadooshka


Сообщения: 2562
Благодарности: 697

Профиль | Отправить PM | Цитировать


mrak1990 <body onload=".....">?

Отправлено: 00:51, 12-05-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 38
Благодарности: 2

Профиль | Отправить PM | Цитировать


Sham
Цитата:
mrak1990 <body onload=".....">?
Просто мне не очень хочется использовать JavaScript.

Но я вчера и сам нашёл решение, оказавшееся очень простым.
Превым делом я добавил во все создаваемые страницы код
Код: Выделить весь код
header ("Cache-Control: no-cache");
Сделал для того чтобы при возвращении назад код заново обрабатывался.
Потом вставил обычный счётчик посещений.
А вкаждой генерируемой странице у меня висит переменная $nomer содержащая номер текущего вопроса.
Потом просто при каждой генерации я проверяю, равны ли эти две переменный (кол-во посещений и переменная $nomer).

Единственная что, пока всё это только в моей голове. Но посмотрим, что из всего этого получится.

Отправлено: 11:14, 12-05-2007 | #3


Новый участник


Сообщения: 38
Благодарности: 2

Профиль | Отправить PM | Цитировать


Не совсем удалась описанная выше операция. Проблема в том, что если запрещеть браузеру кэшировать страницу и если на этой странице есть форма, то работать нифига не будет кнопка назад (браузер пишет, что "Невозможно отобразить страницу"). Если форму убрать, то нормально срабатывает запрет на кеширование и страница обновляется. Если кто знает, то подскажите, что это за такая интересная особенность и как сней бороться

Отправлено: 11:51, 12-05-2007 | #4


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Это они все так "странно" и закономерно себя ведут: форма - это возможность посетителя менять поведение страницы (по сути). Пусть есть три страницы: 1 - с формой, 2 - результат обработки формы сервером, 3 - там где мы сейчас есть. Если пытаться back с 3 на 2, то будет ошибка аля страница устарела (она, и верно, динамическая). Толи лениво было разрабам запоминать просто код принятый с сервера, толи я не все спеки прочел и чего-то не понимаю. Кстати, попробуйте использовать в формах метод GET, может быть это решит текущую проблему. А вообще, я бы использовал AJAX (см. прикрепленную тему) - модно, дешево и сердито.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 14:36, 12-05-2007 | #5


Deadooshka


Сообщения: 2562
Благодарности: 697

Профиль | Отправить PM | Цитировать


mrak1990 я бы насчет кэширования и париться не стал . Поведение браузеров здесь не стандартизировано (более того - подлежит настройке юзером), да и в большинстве случаев назад можно перейти в автономном режиме. Так шо - либо javascript (в т.ч. АЯХ), либо другой алгоритм (проверки на чаво-й-то-там)...

Отправлено: 18:20, 12-05-2007 | #6


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Почему бы после нажатия "Перейти к следующему вопросу" не записать ответ в сессию, куки, либо в базу данных / текстовый файл. А потом проверять: был ответ - новый не записываем, не было - записываем.

Отправлено: 19:13, 12-05-2007 | #7


Новый участник


Сообщения: 38
Благодарности: 2

Профиль | Отправить PM | Цитировать


Coutty
Цитата:
Почему бы после нажатия "Перейти к следующему вопросу" не записать ответ в сессию, куки, либо в базу данных / текстовый файл. А потом проверять: был ответ - новый не записываем, не было - записываем.
Всё это уже делается. Информация о номере вопроса, имя и фамилия и т.д. передаются через Cookie + пишется в БД.


Prisoner
Цитата:
Кстати, попробуйте использовать в формах метод GET
Это не катит, так как через тэг <hidden> передаётся кол-во полученных балов (правильность ответа проверяется сразу а не после прохождения всего теста).

Насчёт AJAX подумаю.

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

Отправлено: 23:35, 12-05-2007 | #8


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


mrak1990
Лучше наверно в сессии хранить, а не в Сookie
Раз вы храните все данные, так в чём проблема? Если отвечается уже отвеченный вопрос, тогда ответ не принимается и сообщение "На этот вопрос Вы уже ответили" - и Пусть они себе шёлкают назад сколько влезит - только время теряют.

-------
Fortes fortuna adiuvat


Отправлено: 00:39, 13-05-2007 | #9


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


mrak1990, есть сайт fepo.ru, где проводят интернет-экзамен (у нас проводили). Там окошко без тулбара разворачивается на весь экран, но назад всегда можно вернуться по бэкспэйсу.
Кроме того, если сразу показывать - правильный был ответ или нет, возможна групповая поддержка типа "а ты как ответил?" - "А вот так" - "И я так же отвечу". ИМХО лучше в конце теста всё сразу показать.
Но остаётся ещё проблема, что можно открыть новое окно с гуглом и, при наличии достаточного времени, поискать ответ там.
Дальше: а если этот hidden подменить? Было 10 правильных - стало 30. Модификация кода страницы (если не проверяется сервер, откуда идёт запрос) или что-нибудь типа ArtMoney с заменой значений в памяти (хотя насчёт этого я не уверен...).
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:37, 13-05-2007 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Запрет на "возвращение" назад

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
Debian/Ubuntu - [решено] Пропали кнопки "свернуть","закрыть","во весь екран" в папках Alex.sys Общий по Linux 5 02-04-2009 11:13
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29
[решено] GPO - Запрет запуска службы "Центр обеспечения безопасности" XPurple Microsoft Windows NT/2000/2003 4 21-10-2005 18:15
[решено] Запрет регистрации пользователя на DC - "Интерактивный вход в систему .." Guest Microsoft Windows NT/2000/2003 9 20-03-2004 12:44




 
Переход