Сессии и пользовательский Ajax в Drupal 6 - PullRequest
2 голосов
/ 10 ноября 2010

Я занимаюсь разработкой пользовательского модуля для Drupal 6. У меня проблема с переменными сеанса и пользовательским кодом с функциональностью ajax.

Как получить доступ к сеансу, созданному Drupal, из внутреннего сценария php, которыйзапускается по запросу ajax?

например, в файле модуля .module я добавляю пользовательский объект php в переменную $ _SESSION.Я могу получить к нему доступ в файле .module, даже если это не та же страница.Когда я выполняю ajax-запрос jQuery и пытаюсь получить доступ к объекту, он недоступен в $ _SESSION.Кажется, что весь сеанс исчез, а переменная $ _SESSION не существует.Вызов session_start () создаст новый сеанс и пустой массив $ _SESSION.

Я застрял с этой проблемой в течение двух дней.Я просто хочу получить доступ к исходному сеансу из серверного сценария запроса ajax.Кроме того, я не могу получить доступ к глобальным переменным, например, $ base_url или $ user.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 18 апреля 2011
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); // This makes all Drupal functionality available to my script

У меня это сработало (скрипт в корне).

0 голосов
/ 14 апреля 2014

В D7 мне пришлось вызывать drupal_session_start() непосредственно перед установкой переменной $_SESSION.

drupal_session_start();
$_SESSION['type'] = "cat1";
0 голосов
/ 11 ноября 2010

Спасибо за все комментарии и помощь. Попробовав несколько инструкций, руководств и постов в блоге, мне удалось запустить встроенную Ajax-инфраструктуру Drupal, и все, включая сессии, отлично работают с запросами. Я узнал, что с Drupal все нужно делать с Drupal, а не с «внешними» решениями, как надстройками.

Исходя из разработок Joomla и Microsoft, логика Drupal в основном была болью в *: D

0 голосов
/ 11 ноября 2010

Просто суммируя комментарии здесь.

У Drupal есть отличный фреймворк для Ajax.Он справляется со многими сложными вещами для вас, как только вы начнете работать.

Если вы подумаете о Drupal, вся обработка сессий вам не поможет.

Если вы зададите другой вопросо том, как заставить это работать, я уверен, что мы поможем.

...