2011-01-14 3 views
1

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

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

здесь эта функция Исеть говорит мне, что переменная установлена, но в следующей странице ui.php это не дает мне тот же результат.

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

<?php } 
?> 

Это фрагмент страницы ui.php. здесь выполняется оператор if.

Что я делаю неправильно?

ответ

5

Вы должны начать сеанс здесь хорошо

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

    <?php } 
    ?> 
+0

спасибо большое ... у меня создалось впечатление, что, поскольку я не уничтожил сеанс, мне не нужно было запускать его на каждой странице ... – user434885

+0

Вы всегда будете рады :) – shankhan

+0

Помните, что 'session_destroy()' if данные сеанса больше не требуются в таких случаях, как выход пользователя из системы. –

3

Вы не начала сессии в UI.php. Код должен быть, как это, с session_start на вершине:

<?php 
session_start(); 

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

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