zoukankan      html  css  js  c++  java
  • 一个诡异的COOKIE问题

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

  • 相关阅读:
    第六课 3. 外部表
    第六课 2 物化视图
    第六课 1.当有数据文件被误删除时如何恢复
    SQL常用(通用)操作_01
    SQL规范
    C# foreach和for比较
    C# 装箱与拆箱
    C#面向对象笔记
    winform防止输入法对扫码的干扰
    GIT安装包备用地址
  • 原文地址:https://www.cnblogs.com/jaychan/p/6126485.html
Copyright © 2011-2022 走看看