Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   php Перенаправление на другую страницу (http://forum.oszone.net/showthread.php?t=76682)

sarcus 25-12-2006 13:08 528870

php Перенаправление на другую страницу
 
В общем когда закрывается сессия делаю перенаправление через header на другую страницу только без переменных в строке запроса Header("Location: logout.php")
Перенаправление происходит а строка запроса в БРАУЗЕРЕ не меняется остается тойже с идентификатором сессии
Типа - index.php?id=12fg34... а не как вроде должно быть - logout.php
В чем проблемма подскажите

vadimiron 25-12-2006 15:45 528940

sarcus
Сессия то уже закрыта, поэтому идентификатор больше не действителен, или Вас волнуют эстетические проблемы (хотите адрес без идентификатора)?

Sham 25-12-2006 16:19 528950

sarcus
Цитата:

Header("Location: logout.php")
должен быть абсолютный URI (см. rfc2616).
id сессии передается браузером в строке URL (GET), если отключена поддержка кукис.......

VeshchiyOleg 25-12-2006 16:52 528961

попробовал...
получилось именно logout.php в адресной строке:

index.php

Код:

<html>
<body>
<p/><a href="header.php?id=12fg34">press here</a>
<p/>адрес ссылки: header.php?id=12fg34
</body>
</html>

header.php
PHP код:

<?
header
('Location:logout.php');
exit;
?>

logout.php
Код:

<html>
<body>
<p/>страница logout.php
</body>
</html>


sarcus 25-12-2006 17:36 528981

чтобы было понятней о чемя вот часть кода index.php
if ($session_id!="") :

sess_start();
if (!isset($_SESSION["user"])) :
session_destroy();
Header("location:logout.php");
exit;
else :
endif;
endif;
index.php в качестве движка
когда я удаляю запись сеанса изи таблицы сессий и обновляю страницу перенаправление то происходит но адресная строка остается той же
Типа не эстетично как сказали

Sham 25-12-2006 20:42 529045

sarcus тебе еще куки сессии у юзера надо удалить (перед session_destroy).... что-то типа
PHP код:

if (isset($_COOKIE[session_name()])) setcookie(session_name(), ""time()-100000"/"); 


sarcus 26-12-2006 05:21 529152

ну куки пока оставил так как решил с ними не заморачиваться да и на что они могут повлиять если я их не использую
У меня основная проблема в адресной строке, ну не красиво это. Конечно при клике на ссылку перехода к след странице все исправиться,
но все равно как решить эту проблему.

Хотя session_destroy() в данном случае бессмысленно так как запись сеанса уже удалена по таймауту,
Блин но как же изменить адресную строку.

sarcus 26-12-2006 08:52 529190

К стати в мозиле все ок

mar 26-12-2006 13:23 529273

sarcus
Sham уже сказл, что надо приводить url к абсолютному при перенаправлении. Не попробовали?

VeshchiyOleg 26-12-2006 13:59 529297

Цитата:

К стати в мозиле все ок
кстати, в эксплорере, если у формы не пишешь action="<?=$PHP_SELF?>" - т.е. на эту же страницу якобы отправлять, то приходит всё, что в форме и всё, что было прислано на страницу как минимум GET`ом

Sham 26-12-2006 16:48 529354

sarcus
Цитата:

ну куки пока оставил так как решил с ними не заморачиваться да и на что они могут повлиять если я их не использую
RTFM! Для передачи ID сессии используется либо куки, либо строка URL... и тебя об этом никто спрашивать не будет :) т.е. я повторюсь, если используешь session_destroy, надо удалить енту самую куку у юзера (т.е. сообщить браузеру, что сессии больше нет)...

mar :)

sarcus 27-12-2006 08:47 529605

Абсолютный url пробовал не помогает

Sham ага попробую удалить куку действительно может сдесь проблемма


Время: 19:25.

Время: 19:25.
© OSzone.net 2001-