加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

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

发布时间:2020-12-14 23:48:35 所属栏目:资源 来源:网络整理
导读:如何在Joomla组件中使用cookie? setcookie( JUtility::getHash('JLOGIN_REMEMBER'),false,time() - 86400,'/' ); 谁能描述一下这是如何工作的? 解决方法 // Get input cookie object$inputCookie = JFactory::getApplication()-input-cookie;// Get 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(理论)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读