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

Форум PHP

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

 

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

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

тема: Потеря сессии ?
 
 автор: Evgen   (29.08.2006 в 00:47)   письмо автору
 
 

Не могу найти причину, по которой некоторые из страниц *.php не хотят возвращать меня на предыдущую страницу по кнопке "Назад" в IE6.0 - пожалуйста, подскажите,! -может не там ищу ?

Попробовал так:

страница 112

<html>
<head>
<?
session_start
();
echo 
"<title>Untitled web-page</title>";
echo 
"</head><body>";
echo 
"<p>Пробник для поиска потери сессии</p>";
echo 
session_id();
$btn "
<form action=113.php method=post>
<input type=submit value='сходить на 113 страницу'>
</form>
"
;
echo 
"$btn";
?>
</body>
</html>


страница 113

<html>
<head>
<?php
session_start
();
echo 
"<title>Untitled web-page</title>";
echo 
"</head><body>";
echo 
"<p>Пробник для поиска потери сессии</p>";
echo 
session_id();
$btn "
<form action=112.php method=post>
<input type=submit value='вернуться на 112 страницу'>
</form>
"
;
echo 
"$btn";
?>
</body>
</html>


жмешь на кнопки формы - ходит со страницы на страницу, показывает id сессии. Жмешь на кнопку "Назад" эксплорера - сообщение "Сервер не найден".

Че это значит ?

   
 
 автор: DEM   (29.08.2006 в 02:05)   письмо автору
 
   для: Evgen   (29.08.2006 в 00:47)
 

Имеется ввиду вернуться назад на страницу с которой пришёл, или назад на страницу с 113 на 112?

   
 
 автор: Skyonex_   (29.08.2006 в 02:28)   письмо автору
 
   для: DEM   (29.08.2006 в 02:05)
 

На счет session_start() (из документации):

"Замечание: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser."

Так что:


//112.php
<?
session_start
(); 
?>
<html> 
<head> 
<? 
echo "<title>Untitled web-page</title>"
echo 
"</head><body>"
echo 
"<p>Пробник для поиска потери сессии</p>"
echo 
session_id(); 
$btn 
<form action=113.php method=post> 
<input type=submit value='сходить на 113 страницу'> 
</form> 
"

echo 
"$btn"
?> 
</body> 
</html>


Аналогично для 113.php

Кнопки Назад Вперед работают, только заново требуется переслать данные формы (просто кнопка Обновить). И в данном примере <form..> вроде как ни к чему, можно простыми <a href...>.

   
 
 автор: Evgen   (29.08.2006 в 13:09)   письмо автору
 
   для: Skyonex_   (29.08.2006 в 02:28)
 

1. ... имеется ввиду - "на страницу, с которой пришел".

2. Применять функцию session_start () до вывода в браузер - это понятно. А что, открывающие теги html, head - отправляются в браузер раньше, чем исполняется следующий код ???

И почему тогда работают другие мои страницы, там сессия запускается из этого же места ?

PS. href в этом случае, конечно правильнее, но это для аналогии с реальной страницей.

   
 
 автор: Evgen   (29.08.2006 в 23:11)   письмо автору
 
   для: Evgen   (29.08.2006 в 13:09)
 

Да, действительно, после обновления страницы (F5), то что было "Сервер не найден" - появляется то, что должно было появиться!

Бум подумать...

   
 
 автор: Mirage   (30.08.2006 в 09:10)   письмо автору
 
   для: Evgen   (29.08.2006 в 23:11)
 

а уменя твой код без обновления работает
правда если я блокирую cookie то генерирует новый id
а так работает с первоночальным.
может в настроках php.ini надо разобраться с SESSION ?

я сталкивался с такой проблемой когда приэтом я менял значения формы а потом отправлял ее.
но если использовать метод get вместо post то страничка возращяется и без обновления.

   
 
 автор: Evgen   (30.08.2006 в 22:47)   письмо автору
 
   для: Mirage   (30.08.2006 в 09:10)
 

Спасибо за подсказку про php.ini !

Включил "выводить все ошибки" - сразу стала понятна причина, скрипт обнаруживает ошибку и вылетает - не находит нужных переменных из массива $_POST (это я не про пример, а про свои реальные страницы).

А через GET видимо должно работать, браузер-то запоминает куда ходил - что делал...

PS. И главное - с другими косяками проще стало - по чистому экрану как-то сложнее определять чё ему (ПХП) не нравиться. С руганью стало легче жить !

   
Rambler's Top100
вверх

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