为什么$ _SESSION数据不会传递到我的函数文件的所有部分?

时间:2013-07-02 16:15:34

标签: php class session-variables

我正在重新编写大量的登录脚本,并在我们的一个内部网站上运行了这样的大型函数文件。

  • CLASS
    • 功能
    • 功能
  • CLASS ...
  • CLASS
  • CLASS验证用户
  • CLASS
  • CLASS

我运行的脚本检索SSO $_SESSION数据,并希望将其从SSO服务器传递给用户的会话。

我尝试在文件的不同部分运行脚本但得到相同的结果。它适用于某些地方而不是其他地方。

我可以将所有$_SESSION变量回显到HTML页面。

我也可以在SOME类中使用$_SESSION数据(无论我把它放在哪里都一样)。

然而,我真的需要使用它 - 验证用户 - 所有内容都为空。

我在这里遗漏了一些东西(请不要告诉我将session_start();放进去。)

我认为$_SESSION数据是超全球的。是否也检索了$_SESSION数据超全局?

如果不是我需要做什么才能使它成为超全球?

这是我用来检索要传递的会话数据的脚本 -

session_start(); 
$appKey = "00000000Uz";
$safeurl =  'https://safe.000000.com/login/sso/SSOService?app=playbooks';
// first call back after safe login - POST is set
if ($_POST && isset($_POST['digest'])) 
{
    $digest = $_POST["digest"];

    // set the session variables ...
    $_SESSION['usernames'] = $_POST["firstname"]." ".$_POST["lastname"];
    $_SESSION['firstname'] = $_POST["firstname"];
    $_SESSION['lastname'] = $_POST["lastname"];
    $_SESSION['email'] = $_POST["email"];
    $_SESSION['uid'] = $_POST["uid"];

    // Needed for key
    $uid = $_POST["uid"];
    $time = $_POST["time"];

    // Read the property file with the key and URL so this won't go into the main code 
    // this sets $appKey and $safeurl
    $mykey = "".$uid.$time.$appKey;
    $mydigest = md5($mykey);
}

// session is not initialized as we never got the post above to set session vars
// call now the safe login to get the post to set the session vars ...
if (!isset($_SESSION['uid']) || empty($_SESSION['uid']))
{
    // Read the property file with the key and URL so this won't go into the main code 
    // this sets $appKey and $safeurl
    header("Location: ".$safeurl);
}          

$usr = $_SESSION['uid'];         
$this->setCurrentUserName($usr);
return TRUE;      
}     

1 个答案:

答案 0 :(得分:0)

确保在使用session_start()之前致电$_SESSION