php会话变量过期

php会话变量过期,php,session,Php,Session,我使用会话变量进行身份验证,据我所知,会话变量应该存储在服务器上,即使在加载新页面时也是如此。 我正在使用以下代码: <?php session_start(); echo $_POST['path']; if($_POST['path']=="index") { $_SESSION['rightPath']=1; if(isset($_SESSION['rightPath'])) echo "it is set"; ?> &

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

    <?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   
}
?>

parent.location='UI.php'
parent.location='index.php'
在这里,这个isset函数告诉我变量已设置,但在下一页ui.php中,它没有给出相同的结果

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

<?php   }
?>

这是ui.php页面片段。这里执行if语句


我做错了什么?

您需要在这里开始课程,一切正常

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

    <?php   }
    ?>

您需要在这里开始会话

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

    <?php   }
    ?>

您没有在UI.php中启动会话。代码应如下所示,顶部为:

<?php
session_start();

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

}
?>

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

您在UI.php中没有启动会话。代码应如下所示,顶部为:

<?php
session_start();

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

}
?>

session_start()创建会话或恢复当前会话。因此,在您之前创建会话时,除非您在每个要使用会话变量的页面上再次执行
session\u start()

非常感谢。。。我的印象是,因为我没有销毁会话,所以我不需要在每一页上都启动它…如果在用户注销等情况下不再需要会话数据,请记住使用
session\u destroy()
。非常感谢。。。我的印象是,由于我没有销毁会话,我不需要在每一页上都启动它……如果在用户注销等情况下不再需要会话数据,请记住使用
session\u destroy()