在错误的页面中运行的随机php代码

时间:2013-09-16 10:58:49

标签: php google-chrome session cookies

我目前正在处理我网站的用户登录部分。我一直在测试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中。任何见解都很可爱。

1 个答案:

答案 0 :(得分:1)

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