【问题标题】:isset($_COOKIE['name'])) not workingisset($_COOKIE['name'])) 不工作
【发布时间】:2012-12-15 22:55:58
【问题描述】:

所以我正在为自己创建一个博客,并给自己设置一个 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配置的问题?

【问题讨论】:

    标签: php cookies isset


    【解决方案1】:

    您在哪里/如何设置 cookie?设置 PHP cookie 时有一个[n](可选)第 4 个path 参数:

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

    例如:

    setcookie("cookiename","cookievalue", $time); 只会为当前 URL 路径设置它

    而:setcookie("cookiename","cookievalue", $time,"/"); 将为该域上的所有页面/文件夹设置 cookie,

    如果您在 google chrome 中按 CTRL+SHIFT+J,然后单击“资源”选项卡,您可以找到 cookie 及其有效路径。我会检查一下。也许这就是为什么?

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这就像一个魅力!设置 cookie 的路径成功了!但是我想知道为什么我在本地测试它时没有任何问题..我使用了相同的文件结构。
      • 我的猜测:cookie 之前的设置有所不同并保持不变。
      • 不,我只是将整个代码放在一个存档中,然后将其提取到我的主机中。所以cookie设置代码是一样的。
      猜你喜欢
      • 2018-08-31
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 2015-03-05
      • 1970-01-01
      相关资源
      最近更新 更多