簡體   English   中英

盡管session.cookie_secure為0,PHPSESSID僅在通過HTTPS提供服務時顯示/工作

[英]PHPSESSID only showing/working when served through HTTPS, despite session.cookie_secure being 0

我在使用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?

這會有所幫助:

$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發送會話?

哈,真奇怪。 我在另一台PC上測試了不安全的HTTP,並且顯示的PHPSESSID沒有問題。 然后,我清除了瀏覽器的歷史記錄和瀏覽器中的cookie,它開始起作用了! 對於其他遇到此問題的人來說,這顯然是我的瀏覽器中的一個緩存問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM