Войти

Показать полную графическую версию : php Перенаправление на другую страницу


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

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

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

VeshchiyOleg
25-12-2006, 16:52
попробовал...
получилось именно 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
<?
header('Location:logout.php');
exit;
?>

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

sarcus
25-12-2006, 17:36
чтобы было понятней о чемя вот часть кода 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
sarcus тебе еще куки сессии у юзера надо удалить (перед session_destroy).... что-то типа if (isset($_COOKIE[session_name()])) setcookie(session_name(), "", time()-100000, "/");

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

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

sarcus
26-12-2006, 08:52
К стати в мозиле все ок

mar
26-12-2006, 13:23
sarcus
Sham уже сказл, что надо приводить url к абсолютному при перенаправлении. Не попробовали?

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

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

mar :)

sarcus
27-12-2006, 08:47
Абсолютный url пробовал не помогает

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




© OSzone.net 2001-2012