PHP setcookie只能间歇工作(版本兼容性?)

PHP setcookie只能间歇工作(版本兼容性?),php,setcookie,Php,Setcookie,我目前正在运行2个版本的PHP。我的本地(测试)服务器有5.3.5版本,而远程(实时)服务器有5.2.4版本。这在过去引起了一些兼容性问题,但我总是能够很容易地解决它们。很快,我的远程服务器将升级,因此不会引起太多问题,但与此同时,我仍然必须为这些愚蠢的兼容性问题提供解决方案。请有人看看我下面的代码,告诉我他们是否发现了5.2.4PHP构建的任何问题 function _cookie($name, $value) { $expire = strtotime('+1 month');

我目前正在运行2个版本的PHP。我的本地(测试)服务器有5.3.5版本,而远程(实时)服务器有5.2.4版本。这在过去引起了一些兼容性问题,但我总是能够很容易地解决它们。很快,我的远程服务器将升级,因此不会引起太多问题,但与此同时,我仍然必须为这些愚蠢的兼容性问题提供解决方案。请有人看看我下面的代码,告诉我他们是否发现了5.2.4PHP构建的任何问题

function _cookie($name, $value) {
    $expire = strtotime('+1 month');
    $old_expire = strtotime('last day of next month');

    setcookie(
        $name,
        $value,
        $expire
    );
    var_dump($name, $value, $expire, $old_expire);
}

$date = date(
    'Y-m-d H:i:s',
    filemtime($file)
);
_cookie('user', 'bob');//works
_cookie('up2date', $date);//does not
我最初把“下个月的最后一天”作为我的cookie到期日,这就是为什么它仍然在
var\u dump
列表中。但是,该字符串在远程服务器上返回false,导致Cookie在会话结束时过期。即使它返回false,它仍然会设置“用户”cookie,我可以在浏览器中查看它。但是,它不会设置“yum”cookie。我认为这很奇怪,但我认为这与函数返回false有关。所以我试着先把它修好。在查阅PHP手册后,我确定我使用的字符串仅在5.3版本中可用。这样,问题得到确认,很容易解决。我将其替换为“+1个月”字符串,我知道它将在5.2上工作。成功了,我的“用户”cookie现在到期了。除了我还没有“饼干”
var_dump
证明正在调用函数来设置它,并且具有所有正确的参数,但它没有设置第二个cookie。如果它根本不起作用,我就不会那么沮丧了。这至少会告诉我我做错了什么,我可以把它清除掉。但是它这样取笑我。。。我错过了什么?有人有什么想法吗

变量转储结果:

//Local server
string(4) "user"
string(3) "bob"
int(1337797496)
int(1338488696)

string(7) "up2date"
string(19) "2012-04-20 10:52:09"
int(1337797496)
int(1338488696)

//Remote server
string(4) "user"
string(3) "bob"
int(1337795061)
bool(false)

string(7) "up2date"
string(19) "2012-04-23 09:14:19"
int(1337795061)
bool(false)

多亏了达维兰多姆。他在这里值得表扬,如果他再加上他的答案,我会把我的答案换成他的。我只是添加了这个答案,所以我没有任何未回答的问题

解决方案:在调用第二个cookie之前,我有输出,因此它无法设置它。我只是移动了我放饼干的地方


谢谢大家的建议和时间

如果将“yum更改为“update”,该怎么办?我从来没有在变量名称中成功地使用过数字,但没有帮助。此外,它在本地(同一个浏览器,同一台机器)上工作,并且在过去也工作过。直到最近,当我将它改为使用strotime时,它才停止工作。我只是想把它改回去,但是如果它对一个有效,为什么不能同时对两个都有效呢?文件发送到filemtime()时是否可能存在权限问题?在读取filemtime()@b_dubb该变量是cookie值,而不是过期日期之前,请在filemtime()之前的$file上尝试chmod。我刚在谷歌上找到这个链接,如果你用这些函数替换下个月最后一天的
呢@b_dubb:好主意,但不是。我一路改成了“777”,丢弃了缓存和cookies,然后再试一次。还是不会凝固。