Как сохранить сессию/cookie в Drupal 6 на компьютере посетителя

Пред1.5 это просто: удостоверьтесь, что Ваша рабочая копия указывает на соединительную линию, затем сделайте "svn URL ответвления URL соединительной линии слияния". Изменения, которые Вы получаете, являются дельтой между соединительной линией и ответвлением, эффективно "дают мне все, что это необходимо, чтобы заставить соединительную линию быть похожей на ответвление".

я понятия не имею, изменяют ли 1.5's новые возможности слияния этот сценарий.

5
задан Isaac Waller 29 August 2009 в 03:42
поделиться

3 ответа

Конечно, это можно сделать, но это не обычный способ сделать это в Drupal. Обычно вы сохраняете информацию либо в сеансе (используйте sessions_write / sessions_read ), либо, если пользователь вошел в систему, в информации учетной записи пользователя.

Сохранение информация в файле cookie означает, что он может быть изменен на стороне клиента, и вам необходимо сделать свой код более надежным, как и любые данные, исходящие от пользователя.

Если вы сохраните его в сеансе, он будет сохранен до тех пор, пока сеанс живет, но после этого исчезнет. Для анонимных пользователей лучшего пути действительно нет. OTOH, для зарегистрированных пользователей, хранение информации в $ user-> data означает, что они будут доступны, пока вы их не удалите, потому что они будут храниться в пользователях. столов.

Также помните, что файлы cookie сеанса drupal регенерируются при переключении с анонимного на вход в систему, но сохраняют содержимое сеанса, поэтому вы можете помещать данные в анонимный сеанс и сохранять их, когда пользователь входит в систему, а затем сохранять их в данные его аккаунта. Посмотрите includes / session.inc , чтобы узнать, как это работает.

3
ответ дан 18 December 2019 в 10:47
поделиться

Если вам нужно что-то отслеживать, и это должно работать с пользователем, не вошедшим в систему, вам нужно использовать cookie, чтобы отслеживать это. Вы не можете использовать сеанс для хранения вещей для анонимных посетителей в Drupal, потому что он привязан к объекту пользователя.

Здесь есть описание - http://www.w3schools.com/PHP/php_cookies.asp - но позвольте мне углубиться в это.

Вы начинаете с setcookie (name, value, expire) - мы предполагаем, что мы хотим назвать это значение business_search, и мы будем использовать тестовое значение ' 80204 ', который является почтовым индексом - это работает так же хорошо, если вы используете' Denver, CO '. Мы не хотим, чтобы он истекал, о-о, шесть месяцев, поэтому мы хотели бы позвонить:

setcookie('business_search', '80204', time() + 3600 * 24 * 180);

Это время составляет примерно шесть месяцев, добавляемых ко времени прямо сейчас.

Получить cookie после этого еще проще - просто используйте $ _COOKIE ['business_search'], и он вернет значение. Итак, мы могли бы просто использовать этот код:

<?php
function saveSerch($search_term) {
  setcookie('business_search', $search_term, time() + 3600 * 24 * 180);
}

function readSearch() {
  return $_COOKIE['business_search'];
}
?>
10
ответ дан 18 December 2019 в 10:47
поделиться

Если у вас возникли проблемы с сохранением клиентских файлов cookie в Drupal, попробуйте использовать необязательный параметр для пути.

пример:

setcookie ('myCookieName', 'myCookieData', 0, '/');

Затем, при загрузке следующей страницы, выведите свои куки на экран. Вы должны увидеть свой файл cookie в выводе.

print_r ($ _ COOKIE);

, точнее,

print $ _COOKIE ['myCookieName'];

Ура!

3
ответ дан 18 December 2019 в 10:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: