会话未获取变量打印长字符串

时间:2018-04-19 16:44:07

标签: php session session-variables

我有这个课程类

class Session 
{
    public function __construct()
    {
        if (!isset($_SESSION)) {
            $this->initSession();
        }
    }

    public function setSessionId()
    {
        $_SESSION['Id'] = session_id();
    }

    public function getSessionId()
    {
        return $_SESSION['Id'];
    }


     public function initSession()
    {
        session_start();
        error_reporting(E_ALL);
        $this->setSessionId();
    }


    public function isLogged(){
        if(isset($_SESSION['Id'])){
            return true;
        }else{
           $this->deleteSession();
           return false;
       }
   }

在我的login.php中,我将id传递给我的会话,但是

$results['Id'] = session_id();

当我得到index.php并回显Id时,它回显一个长字符串而不是当前用户ID

$session = new Session();
$id = $session->getSessionId();

echo $id;

请帮助我如何传递变量!我已经尝试了很多但我似乎被困在这里了!非常​​感谢一些帮助

1 个答案:

答案 0 :(得分:2)

为您的班级添加其他方法:

public function setUserId($userid) {
    $_SESSION['user_id'] = $userid;
}

public function getUserId() {
    return isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null;
}

然后,您的登录页面应在用户登录后调用$session->setUserId(),并从数据库中传递ID。