我有一个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的值。
不确定是什么问题。
答案 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是无状态协议。