PHP cookie未被删除/取消设置

时间:2017-11-12 18:09:29

标签: php cookies

您好我在远程服务器上开发了一个Web并且问题已经出现[我取消设置cookie并且从该文件中我可以看到未设置的cookie但是在索引中我看到它们再次设置]。

我的网站有下一个结构(我使用MVC) 我会尽可能地明确

---public_html
 --models
 --views
 --controllers
 --media
 --js
 --css
 --index.php
 --.htaccess
 --other  
设置

.htaccess:www.eg.eg/?view=lorem - > www.eg.eg/lorem

索引在设置参数时调用views,例如:www.eg.eg/some some.php从视图中调用

我将采取措施解决问题:

  1. 如果Cookie可用,请登录www.eg.eg/login设置名为token
  2. 的Cookie
  3. 退出www.eg.eg/other/log_out.php
  4. 检查Cookie是否未设置但不是
  5. 要设置Cookie,我会这样做:

     setcookie("sessionPAD", $token, time() + (86400*30), "/", "www.eg.eg", true);
    

    当我在索引中写var_dump($_COOKIE)时,我可以看到sessionPAD

    我要注销:

    <?php
        session_start();
        if(isset($_SESSION['x']) && isset($_SESSION['y'])){
            $x= $_SESSION['x'];
            $y= $_SESSION['y'];
            require_once '../models/Connection.php';
            require_once '../models/User.php';
            $User = new User();
            $User->deleteToken($selector .  $validator);
        }
        session_destroy();
        if (isset($_COOKIE['sessionPAD'])) { //to try to delet cookie
            unset($_COOKIE['sessionPAD']);
            setcookie("sessionPAD", null, -1, "../");
            setcookie("sessionPAD", null, -1, "/");
            setcookie("sessionPAD", null, -1);
        }
        var_dump($_COOKIE); //When I see the result of this sessionPAD is not shown, so I guess session was deleted or can't be seen from that file
        //header("location:../"); //line commented to test
    

    退出后我转到index.php然后猜猜,具有相同值的Cookie仍然存在。

    我见过删除所有Cookie的代码,但我只想删除特定的Cookie。

    非常感谢您的时间

1 个答案:

答案 0 :(得分:1)

我找到了解决方案

大家好,经过大量时间尝试不同的选项,我发现了如何删除该cookie

setcookie($name, '', -1, "/", "www.eg.eg", true);

我的解释:

当我使用SSL时,我将cookie设置为在安全连接中可用,并且只是在我的域中可用,因此要取消设置cookie,我需要指定相同的参数,域和安全连接。

毕竟它不是文件夹的东西,而是参数的东西