PHP会话和重定向

时间:2012-07-26 03:46:29

标签: php session session-variables

<?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'])

是不是被视为真实?

1 个答案:

答案 0 :(得分:1)

您正在第一页中使用session_name($_POST['username']);创建会话,然后在第二页中启动没有名称的会话。这实质上意味着第二页使用与第一页不同的会话。

有关详细信息,请查看session_name的PHP手册,但最简单的修复方法可能是完全删除该行。