Php 使cookie文件过期

Php 使cookie文件过期,php,session,cookies,logout,Php,Session,Cookies,Logout,我的网站正在按照我希望的方式运行。。。在完全注销之前,我必须运行两次注销脚本 从我第一次运行脚本时(执行get_defined_vars()并打印结果)可以看出,它会破坏会话,但不会使cookie过期。这是我的logout.php: <?php session_start(); // Set Session data to an empty array $_SESSION = array(); // Expire their cookie files if(isset($_COOKIE["

我的网站正在按照我希望的方式运行。。。在完全注销之前,我必须运行两次注销脚本

从我第一次运行脚本时(执行
get_defined_vars()
并打印结果)可以看出,它会破坏会话,但不会使cookie过期。这是我的logout.php:

<?php
session_start();
// Set Session data to an empty array
$_SESSION = array();
// Expire their cookie files
if(isset($_COOKIE["id"]) && isset($_COOKIE["user"]) && isset($_COOKIE["pass"])) {
    setcookie("id", '', strtotime( '-50 days' ), '/');
    setcookie("user", '', strtotime( '-50 days' ), '/');
    setcookie("pass", '', strtotime( '-50 days' ), '/');
}
// Destroy the session variables
session_destroy();
// Double check to see if their sessions exists
if(isset($_SESSION['username'])){
header("location: message.php?msg=Error:_Logout_Failed");
} else {
    header("location: http://www.kokarma.com");
    exit();
} 
?>

我的剧本怎么了

   setcookie("id", '',time()-100);
    setcookie("user", '',time()-100);
    setcookie("pass", '', time()-100);

试试这个。

您正在将用户id、名称和密码存储在cookie中?!请不要这样做。密码是加密的,并用bcrypt散列,但我将从cookies中删除该信息。唯一的问题是,我只有一个用户ID可以用来与数据库进行比较并检索其余的用户变量,我认为这会更加开放?这就是为什么只使用会话。不需要在cookie中存储任何实际数据。所有实际数据都存储在服务器端,客户端只会获得一个无意义的会话id。@deceze但会话只有在浏览器打开时才有效,不是吗?不,只要您使会话和cookie有效,会话就有效。谢谢,但不起作用。是否有可能删除cookie文件?是否有错误?或者只是cookie没有过期?我没有收到我设置的“注销失败”错误,但是
标题(位置
没有运行,所以问题不在cookie上。请尝试设置echo“error1/2”,看看您收到了什么。还可以尝试将if-isset($\u会话['username'])更改为if(!empty($\u会话['username']),将会话\u destroy()更改为$\u会话['username']='';成功了!谢谢你的帮助!我没有尝试设置echo“error1/2”
你能解释一下这是什么吗?