php7.0中的cookie

大兄弟 2019年01月05日0   109

在5.6中使用tp3.2的cookie()函数时,因为误解expire属性是指定过期时间,所以在使用的时候多加了一个现在的时间戳进去,但是在5.6环境下并没有任何异常,最近有些小工具需要使用7.0的环境进行调试,所以php切换到了7.0。

工具调试完后,在7.0环境下运行了以便之前写的项目,结果用户登录出了问题,使用session是可以正常登录的,一旦切换到cookie就出问题了。

一开始以为是7.0环境下的xdebug影响了cookie ,结果关掉了xdebug问题也一样存在,后来经过多当面的调试,想起来tp内部的cookie 函数的expire参数是指定多久后过期,后来把业务代码中的NOW_TIME+$expire改成了$expire,如果不改的话会导致最后的到的过期时间为2*NOW_TIME+$expire,但很奇怪的是在5.6下这个上限并没有明显影响业务。。

我的猜想:1. cookie的expire属性是有一个上限的,在没改代码之前的过期时间太大导致不能存储。2. 还是数值问题,数值过大导致php将其变为了科学计数格式,这也就表名这个参数已经不再是数字了(如10E4),可能被认为字符串。