php - PHP session 声明错误

标签 php session sessionid

我遇到一个涉及 PHP session 的文件的问题。

我有以下两个 php 文件:

confirm_save.php

<?php
include("confirm.php");
$_SESSION = array();
$token = $_SESSION['logout'];


if ($token && $_POST['token']==$token) {

    if(isset($_COOKIE["id"]) && isset($_COOKIE["user"]) && isset($_COOKIE["pass"])) {
        setcookie("id", '', strtotime( '-5 days' ), '/');
        setcookie("user", '', strtotime( '-5 days' ), '/');
        setcookie("pass", '', strtotime( '-5 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: index.php");
        exit();
    }*/ 
    header("location: index.php");
}
else {
    // log potential CSRF attack.
}
    unset($_SESSION["logout"]);
?>

然后,我有confirm.php

<?php
session_start();
$token= md5(uniqid());
$_SESSION['logout'] = $token;
?>
<html>
<body>
<form method="post" action="confirm_save.php">
<input type="hidden" name="token" value="<?php echo $token; ?>" />
Do you really want to log out?
<input type="submit" value=" Yes " />
<input type="button" value=" No " onclick="history.go(-1);" />
</form>
</body>
</html>

在confirm.php中点击“yes”后,出现如下错误:

Undefined index: logout in C:\wamp\www\confirm_save.php on line 4

第4行是

$token = $_SESSION['logout'];

我真的不知道可能是什么错误。

最佳答案

您通过以下方式清空您的 $_SESSION

$_SESSION = array();

然后尝试填充$token

$token = $_SESSION['logout'];

没有值(value)。

不应该有理由清空 $_SESSION,也不应该定义 $token,因为您包含 confirm.php,其中还包含您的 $token 和值

编辑

不要包含 confirm.php

但是做:

<?php

    session_start();
    $token = $_SESSION['logout'];
    if ($_POST['token']==$token) {

...

关于php - PHP session 声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26477722/

相关文章:

php - MySQL SELECT COUNT(*) 根据多个条件从两个表中

jquery - Codeigniter session 因 ajax 调用而出错

c# - 如何生成新的 session ID

php - 在 AJAX 请求上清空 $_SESSION 超全局变量,但保留 session ID

php - 如何更改从 Woocommerce 推送到 Facebook 商店的 URL?

php - 单引号导致更新 SQL 失败

php - 在 Yii2 Controller 中返回 json 的正确方法

java - 使用客户端 IP 的 session 状态

mysql - 使用 Express 更改回调内的 session 对象

ASP.NET:Session.SessionID 在请求之间发生变化