$ _SESSION по поддоменам - PullRequest
       1

$ _SESSION по поддоменам

0 голосов
/ 19 февраля 2012

кто-нибудь знал, как сохранить сеанс между поддоменами?

я могу получить доступ к определенному куки-файлу, используя два разных субдомена, но проблема остается ... когда я пытаюсь отправить $ _SESSION ['test'] для одного субдомена, он не отображается в другом

subdomain1.domain.com / trial.php

<?php
ini_set("session.cookie_domain", ".domain.com");  // allow access to this cookie from any subdomain
session_start();      // create cookie
$_SESSION['test'] = "TEST1";  // lets try to send "TEST1" in the other subdomain
?>

subdomain2.domain.com / trial.php

<?php
ini_set("session.cookie_domain", ".domain.com");  
session_start();       // cookie already set
print_r($_SESSION);    // $_SESSION array is empty
?>

спасибо, milkael

1 Ответ

3 голосов
/ 19 февраля 2012

Лучше хранить сеансы в базе данных и передавать их в виде файлов cookie.У PHP есть параметр (домен) в setcookie () , чтобы сделать куки доступными для всего домена (включая субдомены).

так, при условии, что ваш домен и субдомены имеют доступ к одной и той же базе данных(или, по крайней мере, имеет доступ к базе данных, содержащей сеансы):

  • хранить идентификаторы сеансов в базе данных (идентификаторы сеансов должны быть уникальными для каждого пользователя)
  • сохранять тот же идентификатор сеансав файле cookie в браузере (доступно для разных доменов)
  • , когда пользователь посещает другой ваш поддомен, просто сравните значение файла cookie со значением из базы данных, и вы узнаете, кто этот человек один и тот же.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...