我有一个第一次加载的页面,定期(每隔几秒)通过AJAX进行更新。在AJAX处理页面上,我想更新用户的cookie,以反映最后一次访问时间" (并因此将数据标记为已读/未读)。无论如何使用" setCookie"标题设置后?或者我必须通过JS更新cookie吗?
谢谢!
答案 0 :(得分:0)
在设置Cookie之前,您需要阻止任何输出。基本上你可以重新加载php命令或尝试使用ob_start来阻止输出,这样你就可以在输出任何html之前设置cookie。
答案 1 :(得分:0)
一种方法是使用AJAX调用php脚本。你可以制作PHP脚本只是为了设置cookie。我是这样做的:
HTML:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
</head>
<body>
<script>
function changeCookie(id)
{
data = 'id='+id;
$.ajax({
type: "POST",
url: 'test.php',
data: data,
dataType: 'html'
});
}
</script>
</body>
PHP:
<?php
$id = $_POST['id'];
setcookie("TestCookie", $id, time()+3600); /* expire in 1 hour */
?>
每当你调用changeCookie函数时,它会将你的cookie设置为你在函数参数中提供的值。您可以修改此脚本以将名称和到期日期发送到PHP脚本。
另一种方式可能是没有PHP,只需计划javascript。您可以找到有关here的更多信息。