Сессия без PHPSESSID в урле

Сергей
На сайте с 23.07.2007
Offline
155
1725

Есть страница с формой авторизации, когда пользователь вводит логин и пароль происходит проверка данных и если все верно, то сессия сохраняется так:

<?

$login = $_POST['login'];

session_start();

$HTTP_SESSION_VARS['login'] = $login;

?>

На следующей странице получаю записанный ранее логин:

<?

session_start();

if(!empty($HTTP_SESSION_VARS['login'])) ...;

?>

При этом в урле дописывается get переменная PHPSESSID, если ее удалить, то не получается достать логин из сохраненной сессии, хотя в папке tmp/ сессия есть.

Как можно идентифицировать пользователя без PHPSESSID в урле?

infair
На сайте с 16.03.2007
Offline
68
#1

добавьте в в .htaссess:


php_value session.use_trans_sid 0
php_value session.use_cookies 1
php_value session.use_only_cookies 1

эти строки говорят серверу, что не нужно добавлять к адресам код типа ?PHPSESSID=132b5fb4eba89c21f102a998da909335

Сергей
На сайте с 23.07.2007
Offline
155
#2
infair:
добавьте в в .htaссess:
php_value session.use_trans_sid 0

да, я добавлял. сессия не распознается, получается также, как-будто удалить из адресной строки часть урла (&PHPSESSID=40237a...)

может надо как-то иначе обращаться к сессии?

у меня такой запрос:

<?

session_start();

if(!empty($HTTP_SESSION_VARS['login'])) ...;

?>

но это работает только с PHPSESSID ((

T.R.O.N
На сайте с 18.05.2004
Offline
314
#3
MMX3000:
но это работает только с PHPSESSID ((

Вы подставьте все, а не только первую строку. Тогда сессия будет индентифицироваться по кукам.

PS очень геморно это реализованоно всетаки в пхп.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
infair
На сайте с 16.03.2007
Offline
68
#4

Ага, ставьте весь код

php_value session.use_trans_sid 0

php_value session.use_cookies 1

php_value session.use_only_cookies 1

- будет работать.

Сергей
На сайте с 23.07.2007
Offline
155
#5

спасибо, но не работает ; (

...странно, заработало само собой, без этих строк!

не понятно

в firefox все отлично работает, PHPSESSID к урлу не приписывается, сессия распознается.В IE проблема осталась (стоит только стереть в адресной строке часть урла &PHPSESSID=..., и сессия уже не распознается)

[Удален]
#6

Бросайте идентификатор сесии в кукиес.

Сергей
На сайте с 23.07.2007
Offline
155
#7
РiJi:
Бросайте идентификатор сесии в кукиес.

буду очень признателен, если напишете как это сделать

Anarchist
На сайте с 23.07.2008
Offline
185
#8

MMX3000, http://moneymaster.ru/tutor/php1/gl8_2.php.htm

на первой странице записываете в кукис что хотите, на второй выдергиваете.

или я не так понял?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий