истекает переменная сеанса php - PullRequest
1 голос
/ 14 января 2011

Я использую переменную сеанса для аутентификации, насколько мне известно, переменная сеанса должна храниться на сервере даже при загрузке новых страниц Я использую следующий код:

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

5 голосов
/ 14 января 2011

вам нужно начать сессию, здесь хорошо

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

    <?php   }
    ?>
3 голосов
/ 14 января 2011

Вы не запускаете сеанс в UI.php. Код должен быть таким: session_start вверху:

<?php
session_start();

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

session_start () создает сеанс или возобновляет текущий. Поэтому, когда вы создаете сеанс ранее, он НЕ возобновляется , если вы не выполните session_start() снова на каждой странице, где вы собираетесь использовать переменные сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...