Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

запретить Back (PHP)

9.3K
01 ноября 2005 года
Mayor28
28 / / 17.06.2005
даже и не знаю возможно ли такое...
краткое описание: странички генерируются PHP, при первом посещении странички происходят определенные действия (принятие блока данных и его обработка с занесением данных по файлам, но с участием пользователя), потом переход на другую страничку. так вот необходимо исключить переходы пользователя на эти странички, по кнопке Back, иначе происходит повторная запись... если кто знает, подскажите... я уже перепробовал все что знал, но никак не получается...
513
01 ноября 2005 года
Yurec
228 / / 21.09.2005
Можно делать так чтобы в history браузщера ничего не писалось:

[url="java script:location.replace('step2.html');"]ссылочка[/url]

Тогда пользователь перейдёт на 'step2.html', а в браузере кнопеньб назад бует не активной! Думаю жто то что тебе надо.
9.3K
01 ноября 2005 года
Mayor28
28 / / 17.06.2005
Цитата:
Originally posted by Yurec
Можно делать так чтобы в history браузщера ничего не писалось:

[url="java script:location.replace('step2.html');"]ссылочка[/url]

Тогда пользователь перейдёт на 'step2.html', а в браузере кнопеньб назад бует не активной! Думаю жто то что тебе надо.



все было бы хорошо, если б не было так печально... с обычным хрефом все прекрасно, а вот с сабмитом никак... может еще как-нить можно???

513
01 ноября 2005 года
Yurec
228 / / 21.09.2005
Цитата:
Originally posted by Mayor28
все было бы хорошо, если б не было так печально... с обычным хрефом все прекрасно, а вот с сабмитом никак... может еще как-нить можно???



History очистить нельзя, так как не доступно для записи. Я думаю нужно выбрать другой способ отслеживания. Например, когда пользователь перешёл на страницу 2 занести ему в куки или сессию некую переменную, а на странице 1 делать проверку на наличие переменной, если она есть, то делать exit(header("Location: my_page.php"));


Опиши ситуацию более подробно и можно будет подумать над её реализацией.

7.3K
02 ноября 2005 года
S_K_I_V--WEBER
60 / / 01.11.2005
Цитата:
Originally posted by Mayor28
даже и не знаю возможно ли такое...
краткое описание: странички генерируются 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-поля проверяют метод пришедшего запроса. Но суть от этого не меняется.
513
02 ноября 2005 года
Yurec
228 / / 21.09.2005
Вот и клёво.
9.3K
02 ноября 2005 года
Mayor28
28 / / 17.06.2005
Цитата:
Originally posted by S_K_I_V--WEBER
трабла решаема:

Код:
<?
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-поля проверяют метод пришедшего запроса. Но суть от этого не меняется.



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

239
02 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by Mayor28
все было бы хорошо, если б не было так печально... с обычным хрефом все прекрасно, а вот с сабмитом никак... может еще как-нить можно???

Можно. Просто после операции выводите следующие данные:

 
Код:
echo "<script>document.location.href='$url';</script>\n";
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог