0

我有一个第一次加载的页面,通过 AJAX 定期(每隔几秒)更新。在 AJAX 处理页面上,我想更新用户的 cookie 以反映“上次访问时间”(从而将数据标记为已读/未读)。设置标题后是否仍然使用“setCookie”?还是我必须通过 JS 更新 cookie?

谢谢!

4

2 回答 2

0

您需要在设置 cookie 之前阻止任何输出。基本上,您可以重新编写 php 命令或尝试使用ob_start来阻止输出,这样您就可以在输出任何 html 之前设置 cookie。

于 2013-06-30T10:48:29.313 回答
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。您可以在此处找到更多相关信息。

于 2013-06-30T12:31:20.183 回答