PHP中的会话值更改

时间:2016-07-07 16:45:55

标签: php session

我有一个PHP页面fbridge.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的值。

不确定是什么问题。

2 个答案:

答案 0 :(得分:2)

应在访问或修改会话变量之前调用session_start()

FIRST:

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

答案 1 :(得分:1)

是的,当您访问会话时,session_start()始终在启动脚本之前。因为在HTTP请求中,会话值在头部内部而不是在页面输出上发送。 session_start()告诉访问会话变量,因为HTTP是无状态协议。