将事物保存在同一个域中 - PHP会话变量丢失

时间:2015-03-30 06:42:50

标签: php session

我正在尝试在会话中使用$ _SESSION变量。我做了

<?php
session_start();
?>

位于名为“login.php”的文件的顶部。

然后我设置

if(isset($_POST["id"])) $_SESSION['ID'] = $_POST['id'];

(更新)当我使用以下方法重定向到另一个页面时:

if($psword === $password){
    //echo $_SESSION['ID'];
    header("Location: memberMain.php");
    die();
    exit();
} else {
    echo "Wrong Password.";
    // remove all session variables
    session_unset();
    session_destroy();
}

,$ _SESSION变量丢失。它给了我Notice: Undefined variable: _SESSION in C:\xampp\htdocs\memberMain.php on line 18我认为是因为域名已经更改。

memberMain.php:

<!DOCTYPE html>
<html>
<head>
    <title>Member Home</title>
</head>
<body>

<h1>Member Home</h1>
<a href="reservation.php">Make Reservation</a>
<br>
<a href="reviewMembership.php">Review Membership</a>
<br>
<a href="logoff.php">Log Off</a>
<br>
<a href="resetPassword.php">Reset Password</a>

<?php
 echo $_SESSION['ID'];
?>
</body>
</html>

我正在使用XAMPP,并且所有文件都在localhost上运行,并且都存储在名为“htdocs”的文件夹中。变量丢失是没有意义的。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

尝试更改您的代码,如下所示

header("Location: memberMain.php");
exit();

答案 1 :(得分:0)

您需要在每个页面上启动您想要访问$_SESSION的会话。

<?php 
session_start();

通常是每个使用会话的php文件的前2行。它是安全的,如果您希望能够在这些页面的任何位置使用$_SESSION变量,则是必需的。

它与更改域名(页面)无关。您的问题就是我上面所说的。