我有一个名为temp.php
的PHP文件,其中包含以下代码:
$expiry = 86400;
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case 'add':
if (!isset($_COOKIE['ids'])) {
$value = $_GET['id'];
$ids = array($value);
setcookie('ids', serialize($ids), $expiry);
} else {
$value = $_GET['id'];
$ids = unserialize($_COOKIE['ids']);
if (!in_array($value, $ids)) {
array_push($ids, $value);
}
setcookie('ids', serialize($ids), $expiry);
}
break;
}
我使用 $.POST('temp.php', {'action': 'add'}, function(data))
运行此代码。
基本上,单击按钮时,我执行 post 函数,并希望将 URL 参数中的 id 添加到 cookie 中的现有数组中,否则创建一个数组。但是,我可以看到正在创建的任何cookie。即使我唯一的代码是 setcookie(...
您正在将 cookie 设置为过期:星期五, 02 一月 1970 00:00:00 GMT.
消除使用变量$expiry
或将其更改为时间戳,setcookie()
想要整数的 Unix 时间戳,而不是时间量。PHP: setcookie() 手册页
setcookie('ids', serialize($ids), time() + 86400) // 1 Day;
并在break;
后修复丢失的大括号