设置并获取会话

时间:2018-04-19 13:29:05

标签: php session

我正在尝试从我的登录页面设置一个php会话:

    class Session{

        public function createSession(){
            session_start();
            error_reporting(E_ALL);

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

public function setId($value){
            $_SESSION['Id'] = $value;
        }

        }

在我的课程课程中,我有以下内容:

$thisSession=Session::getId();
if(isset($thisSession)) { 
   echo "The session is set."; 
} else{ 
   echo "Sorry, it's not set."; 
} 

然后我尝试将其调用到我的Id

索引
Undefined index: Id

我该怎么做?

var string = 'borderRadius:0px,fontSize:8px';

console.log(string.replace(/[A-Z]/g, s => '-' + s.toLowerCase()));

将会话ID从登录传递到我的索引页面!

1 个答案:

答案 0 :(得分:0)

您可以确保创建一个封装$_SESSION的对象,但要注意PHP的工作方式。

我建议您使用session_id方法对您的班级进行小修改(如果您对此没问题):

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

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

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

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

请记住,用户无法访问$ _SESSION变量,因此很容易放入太多信息,尤其是敏感信息。

$_SESSION是一个PHP超全局变量,你可以在任何你想要的地方检索它,但你可以通过声明来获取它:

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

var_dump($id);

对于注销,您应该添加此方法:

public function deleteSession()
{
    session_destroy();
}

然后在要求断开连接的操作时使用

$session =  new Session();
$session->deleteSession();