如何删除会话 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);
经过大量研究,我找不到实现梦想的方法。 我目前在 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);