如何删除会话 Cookie

How to delete a Session Cookie

经过大量研究,我找不到实现梦想的方法。 我目前在 m<“本地主机”(总有一天会上线)上创建一个云,并且在登录后只为记住用户实现了一个 Cookie。我需要一种通过按钮为我的用户注销的方法,但问题是我找不到任何方法适合我的“情况”。我已经尝试更改 cookie 的日期和许多删除 Cookie 的方法,但它从未奏效,这可能是会话 Cookie 没有到期日期的问题。 Cookie 名称始终为“PHPSESSID”,它将在登录后创建:

<?php
session_start();
require("db.php");
if(isset($_SESSION['code'])){
  $code = $_SESSION['code'];
  $saftycode = $db_link->real_escape_string($code);
  $check = 0;
  $db_res = mysqli_query($db_link, "SELECT * FROM user WHERE code = '$saftycode'");
  while($row = mysqli_fetch_array($db_res)){
    $check = 1;
  }
  if($check == 1){
    header('Location: home.php');
  }
}
?>
<html>
    ...
</html>
<?php
if(isset($_POST['username']) || isset($_POST['password'])){
  $username = $_POST['username'];
  $password = $_POST['password'];
  if($username){
    if($password){
      require("db.php");
      $saftyusername = $db_link->real_escape_string($username);
      $saftypassword = $db_link->real_escape_string($password);
      $code = null;
      $db_res = mysqli_query($db_link, "SELECT * FROM user WHERE username = '$saftyusername' AND password = '$saftypassword'");
      while($row = mysqli_fetch_array($db_res)){
        $code = $row['code'];
      }
      if($code){
          $_SESSION['code'] = $code;
          $_SESSION['ERROR'] = "";
          header('Location:home.php');
      }else{
          $_SESSION['code'] = $code;
          $_SESSION['ERROR'] = "";
          header('Location:index.php');
      }
    }else{
      $_SESSION['ERROR'] = "";
      header('Location: index.php');
    }
  }else{
    $_SESSION['ERROR'] = "";
    header('Location: index.php');
  }
}

整个脚本中没有实现 session_destroy()。我实际上不知道是否可以删除 javascript 中的 PHPSESSID cookie,如果这不可能,我可以使用 php 删除 cookie。有没有办法通过脚本删除一个 PHPSESSID Cookie?,我可以一次删除所有 cookie 吗?这些是我想问你们的问题

the Cookie is saved under localhost>Cookies>PHPSESSID

也许这个问题是重复的,但我需要知道如何注销用户

您说 PHP 中没有办法做到这一点是正确的,如果您想删除 cookie,您可以做的是将过期时间设置为过去的某个时间:

// Set to 1 second in the past, this will invalidate the cookie.
setcookie("cookie_name", "", time() - 1, "/");

取消设置 $_COOKIE 全局中的 cookie 索引也是一个好主意,因为它可以在解析页面的其余部分时存在于其中。

unset($_COOKIE["cookie_name"])

要删除 cookie,您只需将到期日期设置为之前的日期(例如昨天)

setcookie("sessioncookie", "", time()-3600);