如何使用PHP从多个页面访问会话变量
我想访问master.php中的如何使用PHP从多个页面访问会话变量,php,Php,我想访问master.php中的$\u会话['roleid']。每个页面都包含master.php。用户登录后,我只能访问dashboard.php中的$\u会话['roleid']。如何访问每页中的$\u会话['roleid'] <?php session_start(); if($_SESSION['login']==1) { $_SESSION['loggedIn'] = true; $role_id1 = $_GET['role_id']; // sto
$\u会话['roleid']
。每个页面都包含master.php。用户登录后,我只能访问dashboard.php中的$\u会话['roleid']
。如何访问每页中的$\u会话['roleid']
<?php
session_start();
if($_SESSION['login']==1) {
$_SESSION['loggedIn'] = true;
$role_id1 = $_GET['role_id'];
// store here in session
$name=$_GET['name'];
$_SESSION['roleid'] = $role_id1;
// $role_id=$_SESSION['roleid'];
$a=$_SESSION['roleid'];
// echo $a;die;
if(isset($_SESSION["roleid"])){
header("location:api/dashboard.php?role_id=$a?name=$name");
}
} else {
header("location:index.php");
echo "login unsuccessful.";
}
?>
您应该检查
$\u会话['roleid']
:
*如果有$\u会话['roleid']
,您将得到它。在该代码上,您将$\u GET['role\u id']
存储到$\u SESSION['roleid']
但是$\u GET['role\u id']
在所有页面中都没有,它只在仪表板中。
我想是的。您应该尝试。才能访问需要调用的会话变量
session_start()代码>位于将使用会话变量的每个页面的顶部。在开始调用之后,您可以使用如下会话变量echo$\u session[“my\u var”]代码>并设置内容$\u会话[“我的变量”]=“变量内容”
,如果您不确定会话的实际归属,可以通过执行var\u dump($\u session)来检查会话的内容代码>。这将显示会话包含的所有数据,因为它是作为数组传递的
请记住,会话不是通过子域递归的,因为cookie用于跟踪哪个会话属于谁。会话还依赖于尚未发送头,因为它需要与cookie交互
要延迟发送标头,请执行以下操作:
1.调用ob_start()代码>位于需要设置多个标题的脚本的顶部
2.做一些你需要做的事情,比如设置标题等等
3.调用ob_end_flush()
发送标题
以下是关于以下内容的官方PHP文档:
在其他页面中调用$\u SESSION['roleid']
时会发生什么?我在dashboard.php中得到了$\u SESSION['roleid'],但在master.php中没有@Carl Binallaif(isset($_SESSION['roleid']){$roleid=$_SESSION['roleid'];}
现在我得到了$_SESSION['roleid']。但是我无法根据角色id显示记录。我将再次检查它,因为您发送了该位置标题。