Наведите на мысль, в чем может быть дело.
Ситуация следующая.
Есть сайт. (php+html). Когда перемещаюсь по страничкам из-за прокси-сервера - то кнопка "Назад" не вызывает ошибки...когда без прокси - выдается ошибка "Невозможно отобразить страницу"...
Наведите на мысль...
Может быть как то нужно вручную с помощью HTML заставить кэшировать странички браузером.
Причем такая ошибка только без прокси сервера и с использованием броузера IE.
Вот коды и пример:
Страница index.php
Код
<?php
session_start();
include ('header.php');
print
'
<div align="center">
Вход пользователя:
<form action="main.php?action=main" method="post">
Имя:
<br>
<input type="text" name="uname" size="15" maxlength="20" value=""><br>
Пароль:
<br>
<input type="password" name="upassw" size="15" maxlength="20" value=""><br>
<br>
<input type="submit" value="Вход">
</form>
</div>
</BODY>
</HTML>
';
session_unset();
session_destroy();
?>
session_start();
include ('header.php');
'
<div align="center">
Вход пользователя:
<form action="main.php?action=main" method="post">
Имя:
<br>
<input type="text" name="uname" size="15" maxlength="20" value=""><br>
Пароль:
<br>
<input type="password" name="upassw" size="15" maxlength="20" value=""><br>
<br>
<input type="submit" value="Вход">
</form>
</div>
</BODY>
</HTML>
';
session_unset();
session_destroy();
?>
Страница main.php - много кода, поэтому приведу только тот, который критичен:
Код
include ('header.php'); //здесь исключительно "шапка" без всяких постбэков и т.д.
print "<div align=\"left\"><a href=\"java script:history.back()\" onMouseOver=\"window.status='Назад';return true\"><font color=\"red\">Назад</font></a></div>";//это для ручного back
if (isset($_REQUEST[session_name()])) session_start(); //стартуем сессию
//записываем данные из постбэка в сессию, при условии, что установлены
if (isset($_POST['uname'])) {$_SESSION['session_name'] =$_POST['uname'];}
if (isset($_POST['upassw'])) {$_SESSION['session_password'] =$_POST['upassw'];}
//Записываем действие для страницы в сессию - ну это можно вообще было не делать...
// из-за GETа разве может такая ошибка быть
if (isset($_GET['action'])) {$_SESSION['session_action'] =$_GET['action'];}
//теперь если посты не установлены получаю нужные переменные из сессий
if(isset($_SESSION['session_name'])) {$name = $_SESSION['session_name'];}
if(isset($_SESSION['session_action'])) {$action = $_SESSION['session_action'];}
if(isset($_SESSION['session_password'])) {$passw = $_SESSION['session_password'];}
print "<div align=\"left\"><a href=\"java script:history.back()\" onMouseOver=\"window.status='Назад';return true\"><font color=\"red\">Назад</font></a></div>";//это для ручного back
if (isset($_REQUEST[session_name()])) session_start(); //стартуем сессию
//записываем данные из постбэка в сессию, при условии, что установлены
if (isset($_POST['uname'])) {$_SESSION['session_name'] =$_POST['uname'];}
if (isset($_POST['upassw'])) {$_SESSION['session_password'] =$_POST['upassw'];}
//Записываем действие для страницы в сессию - ну это можно вообще было не делать...
// из-за GETа разве может такая ошибка быть
if (isset($_GET['action'])) {$_SESSION['session_action'] =$_GET['action'];}
//теперь если посты не установлены получаю нужные переменные из сессий
if(isset($_SESSION['session_name'])) {$name = $_SESSION['session_name'];}
if(isset($_SESSION['session_action'])) {$action = $_SESSION['session_action'];}
if(isset($_SESSION['session_password'])) {$passw = $_SESSION['session_password'];}
ну и все...
далее начинается проверка на action...
Дак вот.
В Опере работает все ок! без прокси.
Что твориться в IE:
При переходе с main.php на какую-то другую страницу - а затем обратно(без всяких вставок и инсертов) по кнопке BACK вылазиет Невозможно отобразить страницу...
Спустя 1 час, 50 минут, 36 секунд (16.02.2008 - 15:40) VladimirS написал(а):
А по какому URL пытается перейти IE? Что в строке адреса?
Спустя 4 часа, 5 минут, 8 секунд (16.02.2008 - 19:46) Sylex написал(а):
То, что тебе показывает Опера, или Прокси - явно кэш. ИЕ в данном случае не кэширует. Скорее всего у тебя не работает и в Опере (видишь кэш). Попробуй отправлять заголовки в самом начале:
И еще вопрос, зачем в конце эти 2 строки?
Ты начинающий?
Код
Header("Expires: mon, 26 Jul 1997 05:00:00 GMT");
Header("Last-Modified: ".gmdate("D, d54 M Y H:i:s"). "GMT");
Header("Cache-Control: no-cache, must-revalidate");
Header("Pragma: no-cache");
Header("Last-Modified: ".gmdate("D, d54 M Y H:i:s"). "GMT");
Header("Cache-Control: no-cache, must-revalidate");
Header("Pragma: no-cache");
И еще вопрос, зачем в конце эти 2 строки?
Код
session_unset();
session_destroy();
session_destroy();
Ты начинающий?
Спустя 1 день, 16 часов, 44 минуты, 10 секунд (18.02.2008 - 12:30) html85 написал(а):
вопрос снят. проверяю посты через доп скрипты и далее location.
И еще вопрос, зачем в конце эти 2 строки?
Код
session_unset();
session_destroy();
Ты начинающий?
при переходе на Index.php - должны уничтожаться все переменные сессии и т.д. и вообще она убиваться...чтобы нельзя было без пароля зайти...ну в общем это должно быть понятно (типа на всех страницах ссылка безопасный выход)...
ты - начинающий.
И еще вопрос, зачем в конце эти 2 строки?
Код
session_unset();
session_destroy();
Ты начинающий?
при переходе на Index.php - должны уничтожаться все переменные сессии и т.д. и вообще она убиваться...чтобы нельзя было без пароля зайти...ну в общем это должно быть понятно (типа на всех страницах ссылка безопасный выход)...
ты - начинающий.
Спустя 4 часа, 59 минут, 39 секунд (18.02.2008 - 17:29) Sylex написал(а):
Цитата(html85 @ 18.2.2008, 15:30) [snapback]33893[/snapback]
вопрос снят. проверяю посты через доп скрипты и далее location.
И еще вопрос, зачем в конце эти 2 строки?
Код
session_unset();
session_destroy();
Ты начинающий?
при переходе на Index.php - должны уничтожаться все переменные сессии и т.д. и вообще она убиваться...чтобы нельзя было без пароля зайти...ну в общем это должно быть понятно (типа на всех страницах ссылка безопасный выход)...
ты - начинающий.
И еще вопрос, зачем в конце эти 2 строки?
Код
session_unset();
session_destroy();
Ты начинающий?
при переходе на Index.php - должны уничтожаться все переменные сессии и т.д. и вообще она убиваться...чтобы нельзя было без пароля зайти...ну в общем это должно быть понятно (типа на всех страницах ссылка безопасный выход)...
ты - начинающий.

Спустя 20 часов, 15 минут, 15 секунд (19.02.2008 - 13:45) html85 написал(а):
ну а ты попробуй без сессион старт...вот сам...и нам расскажешь....особенно когда первый вход...
Спустя 4 часа, 38 минут, 7 секунд (19.02.2008 - 18:23) Sylex написал(а):
Цитата(html85 @ 19.2.2008, 16:45) [snapback]33958[/snapback]
ну а ты попробуй без сессион старт...вот сам...и нам расскажешь....особенно когда первый вход...
Цитата
main.php?action=main
вот в той части и надо ловить - создавать сессию только тогда когда присваиваешь $_SESSION, и уничтожать ее нужно тока при LOGOUT;)
Спустя 14 часов, 15 минут, 17 секунд (20.02.2008 - 08:38) fedya написал(а):
session_start ставится до текста, иначе ошибка.
Спустя 1 час, 28 минут, 41 секунда (20.02.2008 - 10:07) Sylex написал(а):
Цитата(fedya @ 20.2.2008, 11:38) [snapback]34008[/snapback]
session_start ставится до текста, иначе ошибка.
Естественно.
Цитата
при переходе на Index.php - должны уничтожаться все переменные сессии и т.д. и вообще она убиваться...чтобы нельзя было без пароля зайти...
Т.е. на главной нет сессии, тогда зачем там session_start ?
Код
<form action="main.php?action=main" method="post">
Т.е. session_start должен быть в main.php

Спустя 1 день, 7 часов, 50 минут, 16 секунд (21.02.2008 - 17:57) SmokeMD написал(а):
