Сессии и htaccess.

q2zx

Новичок
Сессии и htaccess.

В index.php стартует сессия.
В htaccess идет перехват ErrorDocument 404 /index.php.
При навигации все хорошо, а вот при обновлении сессия стартует повторно.
 

q2zx

Новичок
при обновлении чего?
при обновлении страниц

Просьба, опиши более конкретно свой вопрос.
К примеру в index.php код для счетчика из
PHP FAQ: Сессии. Подробное описание работы и объяснение механизма.
PHP:
<? 
session_start(); 
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";
echo "<br><a href=".$_SERVER['PHP_SELF'].">обновить"; 
?>
все работает прекрасно, инкрементирует при клике на ссылку или просто рефреше.
Но при добавлении в htaccess строки ErrorDocument 404 /index.php при рефреше стартует новая сессия, причем значение $_SESSION['counter'] не теряется, а при клике по ссылке все ОК.
 

q2zx

Новичок
Фанат
Работа продолжается с текущей сессией, просто при каждом рефреше стартует новая "бесхозная" сессия.
 

Фанат

oncle terrible
Команда форума
видимо, ты стартуешь сессию два раза.
ищи косяк в своём алгоритме.
 

q2zx

Новичок
Фанат
В каком алгоритме? Код я привел полностью.
 

SiMM

Новичок
> Но при добавлении в htaccess строки ErrorDocument 404 /index.php при рефреше стартует новая сессия
Эта строка вообще не имеет никакого отношения к сессиям. Она вообще ни к чему не имеет отношения. До тех пор, пока речь идёт о "валидном" url'е.
 

q2zx

Новичок
Вот блин!!! Такой косяк только в Опере, в IE все работает. Это что получается, Опера куки криво отсылает?
 

Фанат

oncle terrible
Команда форума
У меня никаких бесхозных сессий не стартует.
по-моему, ты слишком хорошо отдохнул вчера.
попробуй отдохнуть ещё.

если после этого эффект повторится, то идёшь по ссылке, которую тебе дали, и выполняешь то, что там написано
 

q2zx

Новичок
SiMM
Сам понимаю, но факт налицо (только в Опере), мда, ерунда какая-то.

-~{}~ 13.11.05 13:17:

Фанат
Иду отдыхать. Тему можно закрыть. Очевидно этот глюк останется для меня загадкой.
 

SiMM

Новичок
q2zx, налицо пока только тот факт, что вместо того, чтобы отладить свой скрипт, ты совершаешь вокруг него ритуальные танцы с бубном. Иди и читай, как работают сессии и как отлаживать скрипты, использующие сессии.

> Очевидно этот глюк останется для меня загадкой.
Попробуй помолиться богу. Может он вышлет тебе манны небесной.
 

q2zx

Новичок
SiMM
Что тут отладить:
PHP:
<? 
session_start(); 
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0; 
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. "; 
echo "<br><a href=".$_SERVER['PHP_SELF'].">обновить"; 
?>
ps. Я атеист.
 

q2zx

Новичок
Фанат
Подскажи плиз, как посмотреть? Или сходу пошли в FaQ.
 

Фанат

oncle terrible
Команда форума
тебя. уже. послали.
ты прочёл оттуда две строчки, это тебе не помогло, ты побежал снова в форум.
неужели так трудно прочесть до конца и сделать, что написано?

И меня всегда изумляет до глубины души - почему я должен УГОВАРИВАТЬ тебя сделать это?
 

q2zx

Новичок
Фанат
Как смотреть обмен заголовками я там не нашел, ну да ладно, найду.
Спасибо ВСЕМ за участие, искренне благодарю от всей души.
 

Crazy

Developer
Автор оригинала: q2zx
<?
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";
echo "<br><a href=".$_SERVER['PHP_SELF'].">обновить";
?>
Опера 8.5. Все работает, никакие лишние сессии не создаются.
 
Сверху