我正在尝试从我的登录页面设置一个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从登录传递到我的索引页面!
答案 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();