Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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