您好我在远程服务器上开发了一个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从视图中调用
我将采取措施解决问题:
www.eg.eg/login
设置名为token
www.eg.eg/other/log_out.php
要设置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。
非常感谢您的时间
答案 0 :(得分:1)
我找到了解决方案
大家好,经过大量时间尝试不同的选项,我发现了如何删除该cookie
setcookie($name, '', -1, "/", "www.eg.eg", true);
我的解释:
当我使用SSL时,我将cookie设置为在安全连接中可用,并且只是在我的域中可用,因此要取消设置cookie,我需要指定相同的参数,域和安全连接。
毕竟它不是文件夹的东西,而是参数的东西