尽管session.cookie_secure为0,PHPSESSID仅在通过HTTPS提供时显示/工作

时间:2017-11-26 17:41:29

标签: php

我遇到了PHP(7)和SESSIONS的问题。我一直在localhost上做所有的工作,只是将我的代码移到我生成自签名证书的网站上,按预期工作。

我添加了session.cookie_secure = 1;在我的session_start()之后;到所有页面。 当然,会话不适用于不安全的HTTP。 然而,尽管在php.ini配置中将值更改为0仍然无法正常工作。

这是var_dump($ _ SESSION)的结果:

https://imgur.com/a/wavv5

代码:

ini_set('session.cookie_httponly',1);

ini_set('session.use_only_cookies',1);

ini_set('session.cookie_secure',0);

在session_start();

有什么建议吗?我能想到的是,PHP以某种方式将cookie_secure缓存为1?

2 个答案:

答案 0 :(得分:0)

这会有所帮助:

$secure = false;
$httponly = true;
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams['lifetime'], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
session_start();

否则,如果你已经有ssl,你为什么要通过http发送会话?

答案 1 :(得分:0)

哈,这很奇怪。我在另一台PC上测试了不安全的HTTP,PHPSESSID显示没有问题。然后我在浏览器中清除了我的浏览器历史记录和cookie,它确实有效!对于有这个问题的其他人来说,这显然是我的浏览器中的一些缓存问题。