Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с кнопками браузера "Вперед" "Назад"
 
 автор: KODAGEN   (20.02.2008 в 08:28)   письмо автору
 
 

Уважаемые коллеги.У вемя возникла проблема, над которой я бьюсь уже почти неделю. И из-за этого я не могу продолжить рабору над моим сайтом.
есть не большой код на одну страничку
<?
    session_name
("MYSESSION");
    
session_start();
    if(isset(
$_POST['go']))
    {
        if((isset(
$_POST['Login']))&&(isset($_POST['Password'])))
        {
            echo 
"Передались данные";
        }else
            echo 
"Передали что-то не понятное<br>";
    }else
 {
?>
<HTML>
    <HEAD>
        <title>Главная страница</title>
    </HEAD>
    <BODY bgcolor="#3399FF" alink="#000066" vlink="#FFFF00">
        <a href="index.php">Зарегистрироваться</a>
        <table align="left">
            <form action="index.php" method="post">
            <tr>
                <td>Логин</td><td><input type="text" name="Login" size="13"/></td>
            </tr>
            <tr>
                <td>Пароль</td><td><input type="password" name="Password" size="13"></td>
            </tr>
            <tr>    
                <td>
                    <input type="submit" name="go" value="Войти"/>
                </td>
            </tr>
            </form>
        </table>
    </BODY>
</HTML>
<?php
    
}
?>

Всё как-бы хорошо работает с первого взгляда. Но есть большущая проблема. Когда я открыл страницу, нажал кнопку "Войти", страница удачно отработала. Затем нажал кнопку браузера "Назад" и снова "Вперед", то браузер сказал что он не может найти указанную страницу. Я нажимаю "Обновить" и браузер тут же находит её. В процесе поиска ошибки и различных проб решить проблему, было установлено следующее. Что ошибка возникает только когда скрипт попадает на функцию session_start() или session_register(). Ошибка исчезает когда я меняю метод передачи с POST на GET. Но не буду ж я передвать логин и пароль в строке URI. Подскажите, ПОЖАЛУЙСТА, где у меня ошибка. Потому-что я уже выбился из сил, а в интернете я нигде не нашел подобную проблему. такое ощущение что я единственный полный юзерь, который не понимает чего-то простого. Заранее спасибо.

   
 
 автор: cheops   (20.02.2008 в 13:23)   письмо автору
 
   для: KODAGEN   (20.02.2008 в 08:28)
 

После того, как переданы данные методом POST и вы их обработали - перегружайте страницу, чтобы сбросить POST-данные
<?php
    session_name
("MYSESSION"); 
    
session_start(); 
    if(isset(
$_POST['go'])) 
    { 
        if((isset(
$_POST['Login']))&&(isset($_POST['Password']))) 
        { 
            echo 
"Передались данные"
        }else 
            echo 
"Передали что-то не понятное<br>"
       
// Либо редирект, либо перегрузка страницы
       
header("Location: index.php");
    }else 
 {
?>

PS Задача достаточно абстрактно поставлена, вы какого эффекта хотите добиться?

   
 
 автор: KODAGEN   (27.02.2008 в 07:29)   письмо автору
 
   для: cheops   (20.02.2008 в 13:23)
 

Здраствуйте. Чесно сказать, проблема решена простым добалением строки session_cache_limiter("private"); в начало. Не знаю как она могла помочь, но она помогла. Проблема была в том, что когда нажимаю кнопку браузера "назад", а затем снова "вперед", т.е. возвращаюсь на страницу, то браузер не находит её, а когда нажал "Оюновить он тут же нашел её."

   
 
 автор: KODAGEN   (27.02.2008 в 07:46)   письмо автору
 
   для: cheops   (20.02.2008 в 13:23)
 

Снова здраствуйте. Перезагрузка страницы помогла. огромное спасибо. Кстати, такая же проблема вылезла, когда я пытаюсь загрузить файлы на сервер. И во всём помогает перезагрузка страницы. А почему вообще такое происходит????

   
 
 автор: mihdan   (27.02.2008 в 11:02)   письмо автору
 
   для: KODAGEN   (27.02.2008 в 07:46)
 

При нажатии кнопки "обновить" проаузер повторно отправляет тот же самый запрос на сервер(будь то просто форма или загрузка файлов)

   
 
 автор: onepost   (27.02.2008 в 11:40)   письмо автору
 
   для: mihdan   (27.02.2008 в 11:02)
 

.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования