为什么我的饼干没有保存?

时间:2015-10-26 06:11:14

标签: php cookies

我遇到了Cookie问题。在我的登录脚本中,我有以下代码行:

GroupItem

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

编辑:
如果我if($_GET['keep'] == "true"){ setcookie('id',$id,time()+3153600); } 所有Cookie,它只会在设置Cookie后给我PHPSESSID。我在index.php上打印,然后在login.php上设置cookie

解决方案:默认情况下,Cookie会保存在创建文件的路径中。要更改路径,还有另一个属性。因此,通过print_r,您可以为整个域提供Cookie。

3 个答案:

答案 0 :(得分:3)

您的代码中没有问题

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

这可能导致

  1. 没有数据传递 $_GET['keep']
  2. 或者,如果数据传递$_GET['keep'] 值未匹配 (" true")。
  3. $id方法
  4. 中的作品 然后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';
    }
    

答案 1 :(得分:0)

我想你错过了“=”符号

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

答案 2 :(得分:0)

使用isset==

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