Доступ к переменным из двух разных сессий? - PullRequest
1 голос
/ 22 июля 2010

Я интегрировал WHMCS и Drupal. Однако, когда вы заходите в Drupal и печатаете SESSION, вы видите совершенно другую информацию, чем то, что вы делали бы, если бы вы переходили на страницы WHMCS. Итак, мой вопрос: как я могу получить доступ к одной сессии из другой?

Мне нужно получить к нему доступ, чтобы увидеть, вошел ли пользователь в систему или нет.

Ответы [ 2 ]

1 голос
/ 25 июля 2010

Drupal регистрирует свои собственные функции обработки сеансов через session_set_save_handler() во время начальной загрузки (drupal_bootstrap()).Он также устанавливает собственную сессию mame в conf_init().

Из-за обработчиков Drupal восстановление имени сеанса WHMCS перед использованием стандартного сеанса PHP не будет работать.PHP будет использовать манипулятор Drupal для открытия, чтения, записи и т. Д. Информации о сеансе.Все, что вы получите, это данные о неправильном сеансе Drupal, возвращенные из sess_read() при вызове из PHP.

Один из способов прочитать сеанс WHMCS - выяснить, как он хранится иполучить к нему доступ без использования функций сессий PHP.

Другим способом может быть отмена того, что сделал Drupal (изменение имени сеанса и регистрация обработчиков) для восстановления стандартных поведенийСеансовые функции PHP, чтение сессий WHMCS и восстановление имени и обработчиков сессий Drupal.

1 голос
/ 22 июля 2010

Значения, которые вы получите, зависят от директивы session.name в php.ini. Если вы хотите, чтобы они могли читать друг друга, установите то же значение session.name.

Вернее, данные сеанса будут загружаться на основе идентификатора в файле cookie с тем же именем, что и session.name. По умолчанию это PHPSESSID, но вы можете изменить его самостоятельно.

Вы можете установить это во время выполнения, используя ini_set() или session_name().

...