0

我有一个 PHP 页面:index.php

在这个页面中,我包含了另一个作为侧边栏的 PHP 页面。

在这个侧边栏中,有一个登录表单。

sidebar.php页面从检查 SESSION 开始,如果有会话,则不会显示表单,如果没有会话,则会显示表单,以便客人可以登录。

session_start();
$guest = true;
if(!isset($_SESSION["id"])){
     //This is a Guest
     $guest = true;
} else {
     //This is not a Guest
     $guest = false;
}
//Then there's the PHP codes that handles form submitting
if(isset($_POST["submit"])){
     //In the end, if everything is valid
     $_SESSION["id"] = $userID;
}

通常页面会在提交表单后刷新,在这种情况下,我希望包含的文件会刷新,再次重新加载后,我希望登录表单会消失,因为$_SESSION["id"]现在是 SET,但它没有。

如果我刷新页面(F5),表单消失了,它可以工作,但是在我提交表单后它不能直接工作,我尝试添加。

header("Location: http://localhost/index.php");

然而它不起作用。

4

1 回答 1

0

请在会话检查之前调用提交操作,

session_start();
$guest = true;

if(isset($_POST["submit"])){

     $_SESSION["id"] = $userID;
}
if(!isset($_SESSION["id"])){
     //This is a Guest
     $guest = true;
} else {
     //This is not a Guest
     $guest = false;
}
于 2013-05-27T20:35:39.307 回答