Как хранить и извлекать пользовательские переменные сеанса в Drupal 6?

Drupal использует специальный обработчик сеанса, который меняет знакомые …:

$_SESSION['foo'] = 'bar';
echo $_SESSION['foo'];

…поведение. Вышеупомянутая переменная сеанса «foo» не будет сохраняться со страницы на страницу.

Многие комментарии и записи в форуме на Drupal.com поднимают вопрос о том, что Drupal использует собственный обработчик сеанса для повышения производительности и поддержки кластеризации серверов. Тем не менее, я не могу найти конкретные примеры, отвечающие на вопрос: «Нужно управлять своими переменными сеанса на разных страницах Drupal и не хотеть прибегать к куки? Вот как вы это делаете …»

У кого-нибудь есть опыт? Мое использование НЕ будет на внешних страницах Drupal, но в самих страницах шаблонов. Это для анонимного пользователя, а не для входа в систему. В этом случае поведение $ _SESSION ожидается.

Related of "Как хранить и извлекать пользовательские переменные сеанса в Drupal 6?"

Итак, вот ответ – $ _SESSION работает как для аутентифицированных пользователей, так и для анонимных пользователей, как и ожидалось, – если нет других проблем!

Я обнаружил, что у меня была следующая проблема; моя таблица «пользователей» Drupal (или в моем случае «drupal_users») отсутствовала у пользователя с UID нуля («0»).

Drupal использует UID 0 для управления сеансами в базе данных через свой собственный обработчик сеанса. Если этот пользователь не существует в таблице (он должен быть установлен по умолчанию), тогда Drupal не может прикреплять информацию о сеансе к анонимному пользователю.