Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с back и history, Проблема с back и history из-за сессий 
V
    Опции темы
Paha21
Дата 16.3.2009, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



Добрый вечер
У меня проблема с back из-за сессии, без сессии все работает нормально
Когда я нажимю back выдается, что-то типа: страница устарела и т.д. и т.п. - когда обнавляю страницу, то нормально преходит назад. Это в IE так, в firefox сразу спрашивает обновлять или нет, в opera не пробывал, но я думаю там все ок
Подскажите как сделать чтоб не выскакивала эта страница - а сразу появлялась предыдущая страница
Заранее спасибо
PM MAIL   Вверх
bars80080
Дата 16.3.2009, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



после авторизации надобно бы делать редирект:

Код

header('Location: какая-то страница'); exit;


хотя... надо посмотреть
PM MAIL WWW   Вверх
Paha21
Дата 16.3.2009, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



Редирект есть,
у меня сделано вот так:

Код

if(!empty($_SESSION["log"])){
         session_unregister('log');
         session_register('log');
        }
        else{
         session_register('log');
        }

header("Location: proba.php");


А уже в ней стартуется сессия:

Код

if(session_id() == '')
session_start();


if(!empty($_SESSION["log"]))
{
код
}



M
MoLeX
Используй кнопку КОД для оформления


Это сообщение отредактировал(а) MoLeX - 16.3.2009, 11:52
PM MAIL   Вверх
Shark
Дата 16.3.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Код

if(!empty($_SESSION["log"]))
       {
         session_unregister('log');
         session_register('log');
        }
        else
       {
         session_register('log');
        }

header("Location: proba.php");


а зачем регистрировать переменную при FALSE и при TRUE?

и зачем делать такую махинацию:
Код

         session_unregister('log');
         session_register('log');

если $_SESSION['log'] не будет пустой?

если ты делаешь back из страницы proba.php на ту, где ты авторизовывался, у тебя так и будет постоянно (или я ошибаюсь)

Это сообщение отредактировал(а) Shark - 16.3.2009, 12:37


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Paha21
Дата 17.3.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



Нет я не делаю back на страницу с которой авиоризовался
В proba.php у меня 4 кнопи (1 из них выход и 3 которые выполняют код)
Нажимаю какую-то кнопку, потом еще одну и после этого делаю back тут и вылетает эта страница

А код этот делаю для проверки, чтобы избежать ошибки
PM MAIL   Вверх
IZ@TOP
Дата 17.3.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



1. Автора в печь  smile 
2. Сессии тут не при чем.
3. Сессии работают неправильно.
4. Кнопка "Назад" предлагает переотправить данные при переходе на ту страницу, которой прежде ты отправил форму (запрос) методом POST.
5. Читаем мануалы, учимся, думаем.
6. Еще вопросы есть?



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Paha21
Дата 17.3.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



Я понимаю - я же написал, что вылетает страница, на которой написано что попробуйте обновить
Мой вопрос, как этого избежеть, например, автоматическим обнавлением или еще как то?

Webpage has expired 
   
   Most likely cause:
The local copy of this webpage is out of date, and the website requires that you download it again. 
 
   What you can try: 
     Click on the Refresh button on the toolbar to reload the page. After refreshing, you might need to navigate to the specific webpage again, or re-enter information.  
 


Написал, что из-за сессии - так как без нее все работает нормально (отображатся сразу предыдущая страница), когда авторизация через куки, тоже нормально работает
PM MAIL   Вверх
Shark
Дата 18.3.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



вот тебе:

Код

<a href='javascript:history.go(-1)'>Вернуться назад</a>


или ввде кнопки:
Код

<input type=submit onClick='javascript:history.go(-1)' value=\"Вернуться назад\">


приведи пример кода который выполяется при на жатии на кнопку, а то может ты где-то реально редирект пропустил просто

Это сообщение отредактировал(а) Shark - 18.3.2009, 12:53


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Paha21
Дата 18.3.2009, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



Shark, я пользуюсь этими, но тут тажа ситуация что и при нажатие back
history.go(-1) это и есть back на 1 страницу
PM MAIL   Вверх
Shark
Дата 18.3.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



Paha21, покажи код файла где у тебя кнопки и второй код файла откуда ты бек делаешь


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Paha21
Дата 18.3.2009, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



1ый файл:

Код

$log="admin";
if(!empty($_SESSION["log"])){
         session_unregister('log');
         session_register('log');
        }
        else{
         session_register('log');
        }

SetCookie("log", $log);

header("Location: proba.php");

2ой файл (в нем и делаю back):

Код


<?php
if(session_id() == '')
session_start();

if(!empty($_SESSION["log"]))
{
header("Content-type: text/html; charset=UTF-8");

if($_POST["menu"]=="Выход")
{
session_unregister('log');
session_destroy();
header("Location: index2.html");
exit;
}
?>
<html><head><title>proba</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body>

<form method="post">
<input type="submit" name="menu" value="proverka1">
<input type="submit" name="menu" value="proverka2">
<input type="submit" name="menu" value="proverka3">
<input type="submit" name="menu" value="Выход">
</form>
<?php
if($_POST["menu"] == "proverka1")
{
echo "proverka1";
}
elseif($_POST["menu"] == "proverka2")
{
echo "proverka2";
}
elseif($_POST["menu"] == "proverka3")
{
echo 'proverka3<br><a href="javascript:history.go(-1)">Back</a>';
}
}
?>



PM MAIL   Вверх
Shark
Дата 18.3.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



судя по твоему коду (второму)... при нажатии на back, он тебя выкидывает на файл авторизации, т.е. на эту часть:
Код

$log="admin";
if(!empty($_SESSION["log"])){
         session_unregister('log');
         session_register('log');
        }
        else{
         session_register('log');
        }

SetCookie("log", $log);

header("Location: proba.php");


я правильно понял?


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Paha21
Дата 18.3.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



Сразу нажать back я не пробывал
Когда я понажимаю кнопки и потом жму back, то он выкидывает эту страницу (указанна ниже), я обнавлю и он делает back правильно, то есть на ту страницу, где я был до этого.
Допустим proverka1-proverka3-proverka2-back-обновляю и попадаю на proverka3 - то есть нормально, только вот не знаю какизбавиться от этой страницы

Webpage has expired 
   
   Most likely cause:
The local copy of this webpage is out of date, and the website requires that you download it again. 
 
   What you can try: 
     Click on the Refresh button on the toolbar to reload the page. After refreshing, you might need to navigate to the specific webpage again, or re-enter information.

PM MAIL   Вверх
Shark
Дата 18.3.2009, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



редирект делай....после каждого POST


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Paha21
Дата 19.3.2009, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 9.7.2007

Репутация: нет
Всего: нет



всмысле, header-ом на самого себя?
но куда тогда его ставить, если в самое начало до всех выводов то ловит глюк - как будто зациклился;
а если в каждой кнопке, то ошибка что был уже другой вывод
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.