php会话变量到期

时间:2011-01-14 05:25:08

标签: php session

我正在使用会话变量进行身份验证,据我所知,即使加载了新页面,会话变量也应该存储在服务器上。 我使用以下代码:

    <?php
session_start();
echo $_POST['path'];

if($_POST['path']=="index")
{
    $_SESSION['rightPath']=1;
    if(isset($_SESSION['rightPath']))
        echo "it is set";
    ?>
    <script type="text/javascript">parent.location='UI.php'</script>
    <?php   
}
else
{?>
<script type="text/javascript">parent.location='index.php'</script>
<?php   
}
?>

这里这个isset函数告诉我变量已经设置但是在下一页中ui.php是不是给了我相同的结果。

    <?php
    if(!isset($_SESSION['rightPath']))
    {
        echo "it not is set";?>

<?php   }
?>

这是ui.php页面代码段。这里if语句正在执行。

我做错了什么?

2 个答案:

答案 0 :(得分:5)

你需要在这里开始会议

<?php
        session_start();
        if(!isset($_SESSION['rightPath']))
        {
            echo "it not is set";?>

    <?php   }
    ?>

答案 1 :(得分:3)

您在UI.php中没有开始会话。代码应该是这样的,顶部是session_start

<?php
session_start();

if(!isset($_SESSION['rightPath']))
{
    echo "it not is set";?>
}
?>

session_start()创建会话或恢复当前会话。因此,在您之前创建会话时,除非您在打算使用会话变量的每个页面上再次执行session_start(),否则不会恢复