Php $\u会话don';t工作,如何正确使用它?

Php $\u会话don';t工作,如何正确使用它?,php,session-variables,Php,Session Variables,当我试图直接与session合作时,我遇到了一个大问题 /* session_start(); //already tried */ if (isset($_SESSION) == false) { session_start(); $_SESSION['PDO'] = new dataBase(); $_SESSION['Debug'] = 'Inside the isset'; } else { $_SESSION['Debug'] = 'Outside the isse

当我试图直接与session合作时,我遇到了一个大问题

/* session_start(); //already tried */
if (isset($_SESSION) == false)
{
  session_start();
  $_SESSION['PDO'] = new dataBase();
  $_SESSION['Debug'] = 'Inside the isset';  
}
else
{
  $_SESSION['Debug'] = 'Outside the isset';  
}
编辑:

输出总是“我创建了一个会话并在其中存储了一些数据”

我开始认为问题可能来自我的班级

class dataBase
{
  var $connLink;

  var $SERVERNAME = "127.0.0.1";
  var $PORT = "3388";
  var $USERNAME = "root";
  var $PASSWORD = "";

  function __construct()
  {
    try 
    {
        $this->connLink = new PDO("mysql:host=$this->SERVERNAME;port=$this->PORT;dbname=mydb;charset=utf8", $this->USERNAME, $this->PASSWORD);
        $this->connLink->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch (PDOException $e) 
    {
        echo 'Echec lors de la connexion : ' . $e->getMessage();
    }
  }
}

谢谢

在访问
$\u SESSION
之前,首先需要使用
SESSION\u start()初始化会话$\u SESSION
之前,首先需要使用
SESSION\u start()初始化会话在调用
SESSION\u start()
之前,
$\u SESSION
变量不存在。需要在每个页面上调用此函数

以下是您需要做的:

session_start(); // start the session

if (!isset($_SESSION['PDO'])) { // the session is new
  $_SESSION['PDO'] = new dataBase(); // store the data into the session
  echo 'I created a session and stored some data into it';
} else { // there is data into the session
  echo 'I have some data in the session';  
}
在页面上的第一次调用中,会话启动,pdo数据存储在其中。然后在这个页面上的下一个调用中,会话从服务器存储器加载,pdo数据在会话中


请注意,如果从命令行使用php,sessions将无法工作
$\u SESSION
变量在调用
SESSION\u start()
之前不存在。需要在每个页面上调用此函数

session_start();

if (!isset($_SESSION['PDO']))
{
  $_SESSION['PDO'] = new dataBase();
  $_SESSION['Debug'] = 'Inside the isset'; 
}
else
{
  $_SESSION['Debug'] = 'Outside the isset';  
}
以下是您需要做的:

session_start(); // start the session

if (!isset($_SESSION['PDO'])) { // the session is new
  $_SESSION['PDO'] = new dataBase(); // store the data into the session
  echo 'I created a session and stored some data into it';
} else { // there is data into the session
  echo 'I have some data in the session';  
}
在页面上的第一次调用中,会话启动,pdo数据存储在其中。然后在这个页面上的下一个调用中,会话从服务器存储器加载,pdo数据在会话中

请注意,如果从命令行使用php,会话将不起作用

session_start();

if (!isset($_SESSION['PDO']))
{
  $_SESSION['PDO'] = new dataBase();
  $_SESSION['Debug'] = 'Inside the isset'; 
}
else
{
  $_SESSION['Debug'] = 'Outside the isset';  
}
你有这样的东西吗

编辑:

if(!isset($_SESSION['test']))
{
    $obj = new stdClass();
    $_SESSION['test'] = $obj;
}
else{
    var_export($_SESSION);
}
试试这个吧

你有这样的东西吗

编辑:

if(!isset($_SESSION['test']))
{
    $obj = new stdClass();
    $_SESSION['test'] = $obj;
}
else{
    var_export($_SESSION);
}
尝试此操作,然后在会话之前使用
session\u start()

$会话之前使用
会话启动()

最后,我决定不再创建我的对象,只通过静态函数使用它
比如数据库::connectDB();等等…

最后,我决定不再创建我的对象,只通过静态函数使用它

比如数据库::connectDB();等等…

会话启动()SESSION_start()后需要在页面顶部添加code>仅出于我的个人文化,使用session存储数据库对象的实例不是一个好方法,对吗?session_start()可能重复SESSION_start()后需要在页面顶部添加code>,使用session存储数据库对象的实例不是一个好方法,对吗?可能与第一次加载页面时重复,您将进入
isset
。然后,如果重新加载它,它将进入
else
Mmmmh我的输出总是带有该代码的“我创建了一个会话并在其中存储了一些数据”。我没有在我的数据库类中取消设置任何内容,我仍然不理解在会话启动后添加此内容:
echo session\u id()并检查重新加载页面时id是否相同是的,我在重新加载或输入页面时使用相同的id第一次加载页面时,您将进入
isset
。然后,如果重新加载它,它将进入
else
Mmmmh我的输出总是带有该代码的“我创建了一个会话并在其中存储了一些数据”。我没有在我的数据库类中取消设置任何内容,我仍然不理解在会话启动后添加此内容:
echo session\u id()并检查在重新加载页面时id是否相同是的,我在重新加载或输入时使用相同的id,除了在定义$\u会话['PDO']时将调试更改为“在isset内部”之外。当我将类分配给$\u会话时,我无法注册更多数据,除了在定义$\u会话['PDO'时将调试更改为“在isset内部”当我将该类分配给我的$_会话时,我无法使用easyPhptry this$SESSION=new SESSION()注册更多的dataOnly升华文本;一开始?那么$\u会话将变成什么?或者,您的意思是$_SESSION=new SESSION()仅使用easyPhptry this$SESSION=new SESSION()升华文本;一开始?那么$\u会话将变成什么?或者你的意思是$\u SESSION=newsession()