<?php require_once('./includes/connection.php'); ?>
<?php require_once('./includes/sql_func.php');?>
<?php
if(isset($_POST['submit']))
{
$isValid = verify_account($_POST['username'],$_POST['password']);
if($isValid){
session_name($_POST['username']);
session_start();
$_SESSION['isLoggedIn'] = true;
session_write_close();
redirect_to("user_panel.php");
}else{
echo "Invalid Username and password";
}
}
?>
<?php require_once('./includes/header.php');?>
假设用户输入了有效的用户名和密码,它将创建一个会话变量,并在会话数组中存储不同的值。但是当我将用户重定向到另一个页面
时怎么样?<?php require_once('./includes/connection.php'); ?>
<?php require_once('./includes/sql_func.php');?>
<?php
session_start();
?>
<?php require_once('./includes/header.php');?>
<?php
if(isset($_SESSION['isLoggedIn'])){
echo "Hello User";
}
?>
<?php require_once('./includes/footer.php');?>
上面代码中的这一行
isset($_SESSION['isLoggedIn'])
是不是被视为真实?
答案 0 :(得分:1)
您正在第一页中使用session_name($_POST['username']);
创建会话,然后在第二页中启动没有名称的会话。这实质上意味着第二页使用与第一页不同的会话。
有关详细信息,请查看session_name
的PHP手册,但最简单的修复方法可能是完全删除该行。