会话变量在之后不起作用需要SIMPLESAMLPHP

会话变量在之后不起作用需要SIMPLESAMLPHP,php,session,session-variables,simplesamlphp,Php,Session,Session Variables,Simplesamlphp,我的会话变量有问题 我不能在我的请求之后设置任何变量。 但是我需要在登录后存储我的数据 代码如下: <?php include "include/header.php"; require_once('simplesamlphp/lib/_autoload.php'); $as = new \SimpleSAML\Auth\Simple('default-sp'); $as->requireAuth(); $attributes = $as->getAttributes()

我的会话变量有问题

我不能在我的请求之后设置任何变量。 但是我需要在登录后存储我的数据

代码如下:

<?php include "include/header.php";

require_once('simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');

$as->requireAuth();

$attributes = $as->getAttributes();

$_SESSION["nivauth"] = "test";

?>

编辑:

  • session_start()位于header.php中
  • 我尝试在另一个页面上使用
    echo$\u session[“nivauth”]获取会话变量
我在另一页上有这个错误:

注意:未定义索引:第10行/var/www/html/cableEdit.php中的nivauth

我的会话var nivauth仅在我的第一页可用

My session_start()正在工作,并且可以查看在其他页面上创建的所有My others sessions变量

如果我放置
$\u会话[“nivauth”]=“test”就在include everything下,但我无法从身份验证中获得nivauth

var已创建,但无法在其他页面上访问…

请参阅

如果我们在SimpleSAMLphp中使用PHP会话,并且在我们保护的应用程序中,SimpleSAMLphp将在第一次调用时关闭任何现有会话,之后将以其自己的会话为准。如果要在调用SimpleSAMLphp后恢复自己的会话,可以通过如下方式清理会话:

$session = SimpleSAML_Session::getSessionFromRequest();
$session->cleanup();
如果您不清理SimpleSAMLphp的会话并在之后尝试使用$\u会话,您将无法使用自己的会话,并且您的所有数据都可能丢失或无法访问

cleanup()根本不起作用,所以除了$session->cleanup()之外,我还做了两个更改以使其起作用

1-config/config.php中的空session.phpsession.cookiename

'session.phpsession.cookiename' => ''
2-添加了会话_start();清理后()


我在SimpleSamlPHP中遇到了类似的问题。在尝试了各种解决方案后,下面的变通方法终于解决了我的问题

在header.php(或其他页面)中,而不是
session_start()通过在下面添加两行代码来初始化SimpleSamlPHP类,您可以将自定义会话变量与SimpleSamlPHP会话一起还原

require_once('simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
下面是片段

<?php
//header.php
//session_start();
require_once('simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');

echo $_SESSION["nivauth"]; 

你怎么知道你的变量没有被设置?我试着在另一个页面上找到它,编辑了我的帖子
<?php
//header.php
//session_start();
require_once('simplesamlphp/lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');

echo $_SESSION["nivauth"];