Php $\u会话don';t工作,如何正确使用它?
当我试图直接与session合作时,我遇到了一个大问题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_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()初始化会话页面顶部的code>在调用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();等等…会话启动()如果我这样做,我将永远不会影响我的$_会话['PDO']=new dataBase()。。。在您想对会话执行任何操作的每个页面上,SESSION_start()启动后需要在页面顶部添加code>仅出于我的个人文化,使用session存储数据库对象的实例不是一个好方法,对吗?session_start()可能重复如果我这样做,我将永远不会影响我的$_会话['PDO']=new dataBase()。。。在您想对会话执行任何操作的每个页面上,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()