博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个诡异的COOKIE问题
阅读量:6397 次
发布时间:2019-06-23

本文共 661 字,大约阅读时间需要 2 分钟。

今天下午,发现本地的测试环境突然跑不动了,thinkphp直接跑到异常页面,按照正常的排错思路,直接看thinkphp的log

有一条
[ error ] [2]setcookie() expects parameter 3 to be integer, float given[\vendor\thinkphp\library\think\Cookie.php:97]
这个错误我直接忽略处理,因为自动接手这个项目后就一直是这样,看样子是给cookie的有效期传了一个浮点数的值,导致函数报错了。
好吧,既然错误日志没有什么头绪,那就只能直接打断点...
....
....
....
....
1个多小时后,打了几十个断点,追了6,7个文件
回到了Cookie.php文件的set方法
然后很奇怪的发现,只要把setcookie的方法去掉就整个跑的通,没有报错。
把参数一个一个打出来,没有什么特别的
'lang','zh-tw','3723724800',....
就是设置语言包的时候调用了,参数看起来也没什么问题
可是为什么呢?
试着把时间戳调小一点..居然没报错了,看来是时间戳的问题。
突然想起,时间戳的最大值是到 2038年 (32位),一查,果然超了。
再看看配置文件,写的是66 * 265 * 86400,居然是66年过期,已经超过了PHP的setcookie函数处理范围
把配置调小,错误立马解决

转载于:https://www.cnblogs.com/jaychan/p/6126485.html

你可能感兴趣的文章
解决Strict Standards: Only variables should be passed by reference
查看>>
解决JBoss只能通过localhost(127.0.0.1)而不能通过IP访问
查看>>
MS SQL处理双引号(DoubleQuote)函数
查看>>
[智能架构系列]什么是Buddy智能开发框架
查看>>
三十一、关于android camera setParameters出错
查看>>
【收藏】QCIF、 CIF、2CIF、DCIF、D1(4CIF)格式介绍
查看>>
hdu 3836 Equivalent Sets (tarjan缩点)
查看>>
一些iOS高效开源类库(转)
查看>>
JAVA编程心得-JAVA实现CRC-CCITT(XMODEM)算法
查看>>
C# DES加密
查看>>
浅谈Oracle分区表之范围分区
查看>>
IBM Tivoli NetView网管软件实战
查看>>
IPSec逻辑体系架构
查看>>
Exchange 2013部署系列之(六)配置邮件流和客户端访问
查看>>
List of Free Programming books
查看>>
思考Android架构(二):像Android框架,如何(How-to)吸引开发者来使用它呢?
查看>>
windows 8 应用小技巧(36-40)
查看>>
8. package 和 import
查看>>
在html中,怎么获取当前页面body的高度,body是没有设置高度的,但是里面有内容...
查看>>
IDC云时代神兵利器-还在等什么!是IDC就可以云主机
查看>>