TP3.2.3 頁面跳轉后 Cookie 失效 —— 參考解決方案


一、問題描述

  接手一個項目,使用ThinkPhp3.2.3,在線上環境( Centos7.4 + Nginx1.14 + MySQL5.7 + PHP7.2.4 )運行沒有問題,

在本地環境( phpStudy 集成開發環境 Windows7 (64位) + Apache + MySQL5.7.17 + PHP7.2.10 )部署項目時,發現Cookie 頁面跳轉無效。

  具體表現為:登錄頁面使用 cookie 保存用戶信息,在登錄頁面打印 cookie 信息,發現 Cookie 信息成功保存,但是登錄成功后,頁面

跳轉到其他頁面,會再次跳轉回登錄頁面。調試后發現,原因是其他頁面通過 Cookie 來判斷登錄信息時失敗,所以返回登錄頁面,即在其

他頁面無法讀取已保存的 Cookie 信息。

  類似現象如下:

二、參考解決方案

1、如果在登錄頁面設置 cookie 時使用 TP3.2.3 的助手函數 cookie(),在其他頁面使用原生的 setCookie() 判斷 Cookie 信息時,需要

注意 Cookie 前綴,否則會讀取失敗;

2、注意 TP3.2.3 中配置中 cookie 的有效期、有效域名以及路徑;

3、文件權限問題;

4、文件 bom 頭的原因,參考:

三、最終解決方案

針對本人的項目情況,以上方案無效,最終的解決方案有兩個:

1、摒棄 TP3.2.3 的助手函數 cookie(), 采用原生setCookie() 函數和 $_COOKIE[];

2、本地運行環境配置為: phpStudy 集成開發環境 Windows7 (64位) + Apache + MySQL5.7.17 + PHP5.6.27 (改變PHP版本)。

本人最終采取的方案:改變 php 版本。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM