Я интегрировал WHMCS и Drupal. Однако, когда Вы переходите к Drupal и Вам print_r СЕССИЯ, Вы видите совершенно другую информацию, чем, что Вы сделали бы, если Вы переходите к страницам WHMCS. Так, мой вопрос, как я получаю доступ к сессии от другой?
Я должен получить доступ к нему, чтобы видеть, зарегистрирован ли пользователь или нет.
Значения, которые вы получите, зависят от директивы session.name
в php.ini
. Если вы хотите, чтобы они могли читать друг друга, то установите одинаковые значения session.name
.
Вернее, данные сессии будут загружаться на основе идентификатора в cookie с тем же именем session.name
. По умолчанию это PHPSESSID
, но вы можете изменить его самостоятельно.
Вы можете установить его во время выполнения с помощью ini_set()
или session_name()
.
Drupal регистрирует свои собственные функции обработки сеанса через session_set_save_handler ()
во время начальной загрузки ( drupal_bootstrap ()
). Он также устанавливает собственное имя сеанса в conf_init ()
.
Из-за обработчиков Drupal восстановление имени сеанса WHMCS перед использованием стандартного сеанса PHP не сработает. PHP будет использовать обработчик Drupal для открытия, чтения, записи и т. Д. Информации о сеансе. Все, что вы получите, это данные для неправильного сеанса Drupal, возвращенные из sess_read ()
при вызове PHP.
Один из способов прочитать сеанс WHMCS - выяснить, как он хранится, и получить к нему доступ без использования функций сеансов PHP.
Другой способ может заключаться в отмене того, что сделал Drupal (изменение имени сеанса и регистрации обработчиков) для восстановления стандартного поведения функций сеанса PHP, чтения сеанса WHMCS и восстановления Drupal имя сеанса и обработчики.