我有一个名为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(...)
答案 0 :(得分:1)
您将Cookie设置为过期:星期五,1970年1月2日00:00:00 GMT。
消除使用变量$expiry
或将其更改为时间戳,setcookie()
想要整数的Unix时间戳,而不是时间量。 PHP: setcookie() man page
setcookie('ids', serialize($ids), time() + 86400) // 1 Day;
在break;