Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Работа одной сессии на адресе с www и без


Автор: Vardoulacha 23.1.2012, 14:09
Собственно вот такой код создает сессию
Код

$_SESSION['id_sess'] = 'номер пользователя';


если сессия создалась при входе на сайт www.site.ru то всё нормально сессия видна скриптам, как только мы покидаем данный адрес и переходим сюда site.ru сессия уже недоступна, как это починить

P.S. на форуме есть подобная тема, там предложили решение передачей в GET идентификатора сессии, вариант неприемлемый, также там сослались на создание кук, тоже мне кажется что-то не то.

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

update
нашел настройку php.ini
session.cookie_domain = .site.ru

но не прокатило ((

update2
итак решение с работоспособностью на обоих адресах не нашел, но нашел вот такое решение

RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

теперь люди не смогут физически попасть на адреса с www тем самым при авторизации всегда будет адрес верный и сессия будет найдена

Автор: Sanchezzz 23.1.2012, 16:27
Вроде так
Код

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z_A-Z0-9\-]{3,63})\.([a-z_A-Z]{2,3})$ [NC]
RewriteRule ^.*$ - [L]

RewriteCond %{HTTP_HOST} ^(www\.)?([a-z_A-Z0-9\-]{4,63}|[a-z_A-Z0-9\-]{1,2})\.([a-z_A-Z0-9\-]{3,63})\.([a-z_A-Z]{2,3})$ [NC]

RewriteRule ^(^\.)*$ file_site/%2/index.php [L]
RewriteBase /


где file_site/%2/index.php  а %2 это директория субдомена  в папке file_site 

Автор: $дмитрий 23.1.2012, 16:39
Передавай идентификатор сессий через куку, действие куки распространняй на поддомены 

Автор: krundetz 24.1.2012, 12:21
Цитата($дмитрий @  23.1.2012,  16:39 Найти цитируемый пост)
Передавай идентификатор сессий через куку, действие куки распространняй на поддомены  

он по умолчанию работает через cookie

Vardoulacha, чтобы заработало надо чтобы сайт с www был алиасом сайта без www, пропивается это в настройках сервера (Apache например)

Автор: $дмитрий 24.1.2012, 13:19
Цитата

он по умолчанию работает через cookie

Какие настройки задашь, так работать и будет

Автор: krundetz 24.1.2012, 17:03
Цитата($дмитрий @  24.1.2012,  13:19 Найти цитируемый пост)
Какие настройки задашь, так работать и будет 

если я правильно понял http://www.php.net/manual/en/session.idpassing.php это то нет, по умолчанию работает через cookie, а чтобы работало через GET надо попрыгать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)