![](/img/trans.png)
[英]PHP session_id() refresh on every request, $_COOKIE['PHPSESSID'] empty
[英]PHP losing Session ID in PHPSESSID cookie when redirects
大家好,我正在開發一個與Sentinel 2.0.8
集成的Codeigniter 3.1.11
項目,但我遇到了一個我無法弄清楚的問題!
每當我在回調中randomly
重定向到外部頁面(支付網關)時,我都會丟失會話。 我正在調試,我意識到在服務器上創建了一個新會話,而前一個會話已經存在,我提到在我的 PHPSESSID cookie 上設置了新會話。 如果我去更改PHPSESSID
cookie 的設置值,它會再次顯示登錄。
我的問題是為什么它在前一個會話存在時創建一個新會話以及為什么它不重新加載上一個會話。 這是從支付網關返回時調用的代碼部分:
empty(session_id()) ? session_start() : '';
我在LEMP Lando environment
運行。
好的,我發現了問題,由於版本 80+ 更新,這實際上僅在 Google Chrome 中發生。 谷歌更新了 SameSite cookie 的設置,在我的情況下,支付網關的第三部分(跨域)的回調中導致此問題。
為了能夠解決這個問題,有一些基於 PHP 版本和您的網絡服務器的解決方案可用。
這是 PHP 的示例: https : //github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md
希望這可以幫助! 因為它讓我失去了 3 天的時間!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.