2016-07-07 4 views
0

У меня есть PHP страницу fbridge.php, которая устанавливает значение сеансаизменения сеанса Значение в PHP

<?php 
    $_SESSION['type']="EMP"; 

?> 
<script type="text/javascript"> 

    window.location="index.php"; 

    </script> 

страница затем перенаправляет на index.php, который имеет следующий код

<? 
    echo "1=".$_SESSION['type']; 
    session_start(); 
    if($_SESSION['sessions_id']!=session_id()) 
    { 
     header('Location: login.php'); 
    exit; 
    } 
    echo "2=".$_SESSION['type']; 
?> 

проблема равна 1 = всегда пусто и 2 = всегда печатать некоторое значение, которое не является EMP.

Не знаете, в чем проблема.

+0

некоторая ценность? Какова ценность? –

+0

Значение @FastSnail = MNR, которое установлено на другой странице – user580950

+0

@ JoseManuelAbarcaRodríguez следует удалить session_start из index.php? – user580950

ответ

2

session_start() должна вызываться перед обращением или модифицировать переменные сеанса

ПЕРВЫЕ:

<?php 
     session_start(); 
     $_SESSION['type']="EMP"; 
     header("Location:index.php"); //This is better than javascript ? 
    ?> 

ВТОРОЙ:

<? 
    session_start(); 
    echo "1=".$_SESSION['type']; 
    if($_SESSION['sessions_id']!=session_id()) 
    { 
     header('Location: login.php'); 
     die("Browser doesn't support redirect"): 
    } 
    echo "2=".$_SESSION['type']; 
?> 
+0

great, session_start(); в fbridge.php работал :) – user580950

+0

Ну, это то, что знает Google :), но в любом случае рад помочь :) –

1

Да session_start() всегда перед запуском скрипта, как вы получаете доступ к сеансам. Потому что в HTTP-запросе значения сеанса отправляются внутри заголовка не на вывод страницы. session_start() сообщает для доступа к переменным сеанса, поскольку HTTP - протокол без состояния.

Смежные вопросы