【问题标题】:Why my cookies are not saving?为什么我的 cookie 没有保存?
【发布时间】:2015-10-26 06:11:13
【问题描述】:

我的 cookie 有问题。在我的登录脚本中,我有以下代码行:

if($_GET['keep'] == "true"){
            setcookie('id',$id,time()+3153600);


        }

我面临的问题是 cookie 根本没有保存(即使我不退出浏览器也不保存)。在这方面我是一个初学者,我认为我做得不对。

编辑:
如果我 print_r 所有的 Cookie,它只会在设置 cookie 后给我 PHPSESSID。我在 index.php 上打印并在 login.php 上设置了 cookie

解决方案:默认情况下,Cookie 与创建它们的文件的路径一起保存。要更改路径,还有另一个属性。因此,通过setcookie('id',$id,time()+3153600,'/');,您可以使 cookie 可用于整个域。

【问题讨论】:

  • 还有一个问题,那个=应该是==
  • @Hanky웃Panky - 我认为这不会导致问题。这将永远是正确的。
  • not saving if I exit the browser 假设您没有退出浏览器,它是否保留了 cookie...?设置后转储$_COOKIE。这样您就可以确保setcookie 正常工作
  • 您确定应该是"true" 而不是true?它们不是一回事。
  • @AshwiniAgarwal 这就是为什么我说另一个问题

标签: php cookies


【解决方案1】:

您的代码没有问题

if($_GET['keep'] = "true"){
   setcookie('id',$id,time()+3153600);
}

这可能会导致

  1. 没有数据传递$_GET['keep']
  2. 或者如果数据传递$_GET['keep']值不匹配(“真”)。
  3. Both Works 然后$id 为空setcookie 方法中

改进您的代码

if(isset($_GET['keep']){

    if($_GET['keep'] == "true"){
        if(isset($id))
        {
            #all perpect
            $cokkie_id = 'id';
            setcookie('id',$id,time()+3153600);

            echo "I'm Set. And My value is ".$cokkie_id;
        }
        else
        {
            echo "Opzz My ID is also empty";
        }       
    }
    else
    {
        echo 'Get method is Set. But Value is not "true". Actual value is '. $_GET['keep'];
    }   
}
else
{
    echo 'I cant reach Get method Buddy';
}

【讨论】:

  • 我试过这个调试方法,方法设置为true
  • 尝试我的所有代码。然后你就会知道出了什么问题。
  • $id 已设置。我可以回显它,它显示 0,我从数据库中获取的行的 id
  • 使用我的。并发布错误。不是我们自己的回声。先试试吧
  • 您的 cookie 已设置。为什么需要错误?我不明白。
【解决方案2】:

我认为你错过了“=”符号

if ($_GET['keep'] == "true") {
    if (!isset($_COOKIE['id'])) {
         setcookie('id',$id,time()+3153600);
    }
}

【讨论】:

  • 是的,但这不会阻止 cookie 保存。它会让它每次都保存 cookie。
  • 如果此解决方案解决了您的问题,请将其标记为正确答案。
  • 您不必提示人们做事。如果他们觉得它有用,那么他们会在自己的时间点赞/接受它。
  • @SverriM.Olsen 有些人,一旦他们得到了可行的解决方案,他们就会离开它,他们不会费心将其标记为正确的解决方案。
【解决方案3】:

使用isset==

if (isset($_GET['keep']) && $_GET['keep'] == "true") {
    setcookie('id', $id,time()+3153600);
}else{
    echo 'keep is empty';
}

【讨论】:

    猜你喜欢
    • 2021-07-20
    • 2022-11-06
    • 2011-11-14
    • 2011-10-21
    • 1970-01-01
    • 2018-11-17
    相关资源
    最近更新 更多