запретить Back (PHP)
краткое описание: странички генерируются PHP, при первом посещении странички происходят определенные действия (принятие блока данных и его обработка с занесением данных по файлам, но с участием пользователя), потом переход на другую страничку. так вот необходимо исключить переходы пользователя на эти странички, по кнопке Back, иначе происходит повторная запись... если кто знает, подскажите... я уже перепробовал все что знал, но никак не получается...
[url="java script:location.replace('step2.html');"]ссылочка[/url]
Тогда пользователь перейдёт на 'step2.html', а в браузере кнопеньб назад бует не активной! Думаю жто то что тебе надо.
Можно делать так чтобы в history браузщера ничего не писалось:
[url="java script:location.replace('step2.html');"]ссылочка[/url]
Тогда пользователь перейдёт на 'step2.html', а в браузере кнопеньб назад бует не активной! Думаю жто то что тебе надо.
все было бы хорошо, если б не было так печально... с обычным хрефом все прекрасно, а вот с сабмитом никак... может еще как-нить можно???
все было бы хорошо, если б не было так печально... с обычным хрефом все прекрасно, а вот с сабмитом никак... может еще как-нить можно???
History очистить нельзя, так как не доступно для записи. Я думаю нужно выбрать другой способ отслеживания. Например, когда пользователь перешёл на страницу 2 занести ему в куки или сессию некую переменную, а на странице 1 делать проверку на наличие переменной, если она есть, то делать exit(header("Location: my_page.php"));
Опиши ситуацию более подробно и можно будет подумать над её реализацией.
даже и не знаю возможно ли такое...
краткое описание: странички генерируются PHP, при первом посещении странички происходят определенные действия (принятие блока данных и его обработка с занесением данных по файлам, но с участием пользователя), потом переход на другую страничку. так вот необходимо исключить переходы пользователя на эти странички, по кнопке Back, иначе происходит повторная запись... если кто знает, подскажите... я уже перепробовал все что знал, но никак не получается...
трабла решаема:
if (isset($_POST['posted'])) {
// проверка данных
if (данные хорошие) {
/*
записываем данные
*/
/*Заставляем браузер запросить нашу страницу с формой повторно*/
header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?ok'); // любо на другой скрипт
/*
желательно при этом помнить о пользователях, у которых
отключены куки и которые могут потерять идентификатор сессии,
но это отдельный разговор
*/
exit;
}
else {
echo "ошибка!!!";
}
}
elseif (isset($_GET['ok'])) {
echo "спасибо, что Вы есть";
}
else
{
// выбираем данные из бызы
}
?>
<form action = "<?=$_SERVER["PHP_SELF"]?>" method = "post">
<input type = "hidden" name = "posted" value = "1">
// рисуем форму
</form>
Вот и все. Есть, конечно, множество вариаций на эту тему. После записи данных можно переходить на другой скрипт, который будет рисовать эти данные в красивом виде или на какой-нибудь список. Некоторые вместо проверке hidden-поля проверяют метод пришедшего запроса. Но суть от этого не меняется.
трабла решаема:
if (isset($_POST['posted'])) {
// проверка данных
if (данные хорошие) {
/*
записываем данные
*/
/*Заставляем браузер запросить нашу страницу с формой повторно*/
header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?ok'); // любо на другой скрипт
/*
желательно при этом помнить о пользователях, у которых
отключены куки и которые могут потерять идентификатор сессии,
но это отдельный разговор
*/
exit;
}
else {
echo "ошибка!!!";
}
}
elseif (isset($_GET['ok'])) {
echo "спасибо, что Вы есть";
}
else
{
// выбираем данные из бызы
}
?>
<form action = "<?=$_SERVER["PHP_SELF"]?>" method = "post">
<input type = "hidden" name = "posted" value = "1">
// рисуем форму
</form>
Вот и все. Есть, конечно, множество вариаций на эту тему. После записи данных можно переходить на другой скрипт, который будет рисовать эти данные в красивом виде или на какой-нибудь список. Некоторые вместо проверке hidden-поля проверяют метод пришедшего запроса. Но суть от этого не меняется.
вот и спасибо... правда сам код не понадобился... только идея... седня по трезвости подумал и сделал проверку на запись получаемой информации... если записано, то выдаем предупреждение, если нет - работаем дальше...
все было бы хорошо, если б не было так печально... с обычным хрефом все прекрасно, а вот с сабмитом никак... может еще как-нить можно???
Можно. Просто после операции выводите следующие данные: