一、问题描述
接手一个项目,使用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 版本。
原文地址:https://www.cnblogs.com/whx-blogs/p/10107152.html