Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP从多个页面访问会话变量_Php - Fatal编程技术网

如何使用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

我想访问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'];
    // 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 Binalla
if(isset($_SESSION['roleid']){$roleid=$_SESSION['roleid'];}
现在我得到了$_SESSION['roleid']。但是我无法根据角色id显示记录。我将再次检查它,因为您发送了该位置标题。