3

所以我正在为自己创建一个博客,并给自己设置一个 cookie 的管理员权限。我已经手动检查了它的存在。

我已经使用 apache 服务器在我的笔记本电脑上测试了代码,并且代码运行良好。

我有两个 php 页面

第一个检测到 cookie 很好,我从一个表单发布到这个 php 页面上。

<?php



if(isset($_POST['tt'])){

    if(isset($_COOKIE['name'])){
        echo "something";

打印了一些东西

上面的页面是唯一检测到 cookie 的页面我还有 7 个文件没有检测到 cookie。我将在此处发布主页

    if(isset($_GET['cat'])){
    $t = $_GET['cat'];
    $mod = "where `cat`=$t";
}

    $ref = mysql_query("SELECT * FROM `content`".$mod);
    while($row = mysql_fetch_assoc($ref)){
        $tit = $row['title'];
        $cno= $row['cno'];
        $brief = $row['brief'];
        $cat = $row['cat'];
        $time = $row['time'];
        $t = "";
        if(isset($_COOKIE['name'])) echo "something";

东西没有打印

还有 1)除了第一个代码段,其他页面都没有使用 post 方法并在检查 cookie之前检索数据。其余页面有时在检查 cookie 之前有一个 get 方法,就像我上面显示的那样,但没有在检查 cookie 之前使用 post 方法 2)var_dump['$_COOKIE'] 仅产生由我的托管服务提供商设置的不相关 cookie。

我猜这可能是一个php配置问题?

4

2 回答 2

4

cookie 可能是一个路径 cookie,这意味着它只会被发送到一个页面。使用 Firebug“Cookies”选项卡(或类似工具)检查是否是这种情况,并使用 Firebug“网络”选项卡(或类似工具,或 Wireshark)检查 cookie 是否实际上是由浏览器发送的。

于 2013-01-01T02:36:49.283 回答
3

Where/how are you setting the cookie? There is a[n] (optional) 4th path argument when setting PHP cookies:

http://php.net/manual/en/function.setcookie.php

For example:

setcookie("cookiename","cookievalue", $time); will only set it for the current URL path

Whereas: setcookie("cookiename","cookievalue", $time,"/"); will set the cookie for all pages/folders on that domain,

If you press CTRL+SHIFT+J in google chrome, and click on the Resources tab, you can find the cookies and the path it is valid in. I'd check that out. perhaps this is why?

于 2013-01-01T02:45:02.320 回答