2009-07-10 2 views
12

Drupal использует пользовательский обработчик сеанса, который изменяет знакомый ...:Как хранить и извлекать пользовательские переменные сеанса в Drupal 6?

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

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

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

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

ответ

17

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

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

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

+4

«блог» ссылка не работает. – dkiscool

+0

Удалена ссылка мертвого блога, изменена копия. – jschrab

Смежные вопросы