Как использовать cookies из компонента?

Как использовать cookies в компоненте Joomla?

setcookie( JUtility::getHash('JLOGIN_REMEMBER'), false, time() - 86400, '/' );

может кто-нибудь описать, как это работает?

1 ответов


// Get input cookie object
$inputCookie  = JFactory::getApplication()->input->cookie;

// Get cookie data
$value        = $inputCookie->get($name = 'myCookie', $defaultValue = null);

// Check that cookie exists
$cookieExists = ($value !== null);

// Set cookie data
$inputCookie->set($name = 'myCookie', $value = '123', $expire = 0);

// Remove cookie
$inputCookie->set('myCookie', null, time() - 1);

правила $expire стоимостью

  • его Unix tinestamp в секундах, как возвращаемое значение time().
  • $expire == 0: время жизни cookie-это сеанс браузера.
  • $expire < time(): cookie удаляется (истекает в прошлое). Вы можете удалить cookie, установив его значение в null, но, по-видимому, IE не может этого сделать.

Примечания

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

ключ Cookie и значение должны быть правильно экранированы

нестроковые значения

при сериализации значения в set (например,json_encode($dataNode)), не забудьте использовать правильный фильтр, чтобы получить его позже. По умолчанию:cmd, который отфильтровывает почти все, кроме a-Z, 0-9 и трещин структуры JSON.

// Get cookie data
$encodedString = $inputCookie->get('myCookie', null, $filter = 'string');

// Decode
$values = json_decode($encodedString);

// Encode and Set
$inputCookie->set('myCookie', json_encode($values));

Rererences