【发布时间】:2017-12-02 08:02:58
【问题描述】:
我有一个名为 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(...)
【问题讨论】:
-
但是如果您将请求作为 POST 发送,那么
$_GET将为空... -
即使我文件中的唯一代码是 setcookie($name, $value, $expiry),也没有添加 cookie @Technoh
-
您需要在 ajax 调用中向服务器发送一个 id:
$.POST('temp.php?id=.....', {'action': 'add'}, function(data)) -
尝试在
isset($_POST['action'])之后添加一个error_log调用,以查看PHP 文件是否正确加载。如果您没有从您的error_log电话中得到任何信息,那么您的错误就在其他地方。 -
你有一个大括号,
break;后面需要一个
标签: javascript php jquery cookies