0

我目前正在处理我网站的用户登录部分。我一直在 3 种浏览器(Chrome、IE、FF)上进行测试。我有一个独立的页面,我正在使用(test.php)来创建一个用于测试目的的 cookie。

示例代码:

session_start();
setcookie("log_token", "blah", time() + 60*60*24*7);

echo "\n<pre>";
print_r($_COOKIE);
echo "</pre>";

这在 IE 和 FF 上正确显示。

Array
(
    [PHPSESSID] => 894ati3nr464gbvk41hjco6eu4
    [log_token] => blah
)

然而,在谷歌浏览器上我得到了

Array
    (
    )

我做了一些测试,发现我在(index.php)中有一些代码在不满足某个测试时会删除我的会话和 cookie 数据。经过验证和测试,我在 (test.php) 中将 cookie 的名称更改为 (login_token1),现在我在 chrome 中看到了这个:

Array
(
    [log_token1] => blah
)

这意味着会话和“log_token”正在从(index.php)中的代码中销毁。为了进一步测试这一点,我从 (index.php) 中删除了该代码,并在 chrome 中重新测试了“log_token”,并显示了正确的 cookie 和会话 ID。

我的问题:为什么在世界上调用 index.php 的 php 代码,当我直接运行(test.php)时.....这绝对没有意义,因为它不会发生在 IE 或 FF 中。任何见解都会很可爱。

4

1 回答 1

1

我遇到了类似的问题。如果您的标记中没有真正的 favicon 设置,Google Chrome 会盲目请求 favicon.ico(或类似的东西)。如果您有一些重定向规则将所有请求路由到 index.php(这是最近的常见做法),则对图标的请求也会通过 index.php。这就是我的问题的原因。

于 2013-09-16T12:03:12.040 回答