PHP Cookie 离线工作正常,但当我在线使用它时每次刷新都会更新

问题描述 投票:0回答:1

我有一个代码,可以为每个新用户设置一个 cookie,并将其保存到变量中。当我使用 XAMPP 在网站上离线工作时,代码工作得很好,并且 cookie 不会改变,但是当我将其上传到我的网站时,cookie 会随着页面的每次刷新而改变

<?php
if (!isset($_COOKIE['clientCookie'])) {
    $uniqueId = uniqid();

    $cookieName = "clientCookie";
    $cookieValue = $uniqueId;
    $cookieExpire = time() + (60 * 60 * 24 * 365 * 10); // Cookie will expire in 10 years

    setcookie($cookieName, $cookieValue, $cookieExpire, '/');

    $clientId = $uniqueId;
} else {
    $clientId = $_COOKIE['clientCookie'];
}
?>

我不确定这里出了什么问题,是否是因为该网站所在的服务器设置方式所致?

php cookies xampp setcookie
1个回答
0
投票

您提供的代码是正确的,可能是域名或缓存路由。首先验证您验证cookie的路径是否正确,setcookie()的最后一个参数“/”表示该cookie必须对整个域有效。阅读此处:https://www.php.net/manual/pt_BR/function.setcookie.php

在进行这些更改之前清除浏览器的缓存,以验证它没有被缓存。

还要检查 apache 服务器上 .htaccess 中设置的 cookie。在 mod_headers.c 中禁用动态页面的缓存。示例:

<IfModule mod_headers.c>
    Header set Cache-Control "no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires 0
</IfModule>
© www.soinside.com 2019 - 2024. All rights reserved.