joomla – 如何使用组件中的cookie?

前端之家收集整理的这篇文章主要介绍了joomla – 如何使用组件中的cookie?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在Joomla组件中使用cookie?
setcookie( JUtility::getHash('JLOGIN_REMEMBER'),false,time() - 86400,'/' );

谁能描述一下这是如何工作的?

解决方法

// 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(过期设置为过去).
您可以通过将其值设置为null来删除cookie,但显然IE无法执行此操作.

笔记

请记住,应在发送标头之前设置cookie(通常在回显输出之前).

应正确转义Cookie密钥和值

非字符串值

序列化set上的值(如json_encode($datanode))时,请记住使用适当的过滤器以便稍后检索它.默认值是cmd,除了a-Z,0-9和破解JSON结构之外几乎可以过滤掉任何东西.

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

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

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

Rererences

> Joomla CMS github存储库:JInputCookie::set(记录完备)
> PHP docs:php.net/setcookie(开发者体验)
>维基百科:HTTP Cookies(理论)

原文链接:https://www.f2er.com/html/227961.html

猜你在找的HTML相关文章