使用不会在会话中过期的HttpFoundation组件创建Cookie需要做什么?
背景:
我正在使用Symfony的HttpFoundation组件。我没有使用整个Symfony框架。我能够使用该组件存储和检索会话cookie。
每当我将cookie过期时间更改为0以外的其他内容时,它们都不会保存。
这将创建一个会话cookie:
new Cookie( $cookie_name, $cookie_value, 0, '/', null, false, false);
这不会创建cookie:
new Cookie( $cookie_name, $cookie_value, 10000, '/', null, false, false);
答案 0 :(得分:0)
感谢Crozin的反馈,我查看了帖子标题,发现了问题。
过期时间为0的标题:
Cache-Control: no-cache\r\nDate: Tue, 29 Jul 2014 12:49:50 GMT\r\nLocation: stories\r\nSet-Cookie: cerberus=email_add%40yahoo.com+53d7986e073ef; path=/\r\n
过期时间为10000的标题:
Cache-Control: no-cache\r\nDate: Tue, 29 Jul 2014 12:50:53 GMT\r\nLocation: stories\r\nSet-Cookie: cerberus=email_add%40yahoo.com+53d798ad3696e; expires=Thu, 01-Jan-1970 02:46:40 GMT; path=/\r\n
问题是,我为过期时间设置了错误类型的值,应该是这样的
$expire = time() + (3600 * 48);
new Cookie( $cookie_name, $cookie_value, expire, '/', null, false, false);
正确的结果:
Cache-Control: no-cache\r\nDate: Tue, 29 Jul 2014 12:56:58 GMT\r\nLocation: stories\r\nSet-Cookie: cerberus=email_add%40yahoo.com+53d79a1a3f335; expires=Thu, 31-Jul-2014 12:56:58 GMT; path=/\r\n