PHP会话是否在设置值时启动?
所以问题是,在PHP中设置任何值时,会话是否可能自动启动,因为我读到您需要调用PHP会话是否在设置值时启动?,php,codeigniter,session,Php,Codeigniter,Session,所以问题是,在PHP中设置任何值时,会话是否可能自动启动,因为我读到您需要调用session\u start(),而在我当前的代码中,我没有在任何地方这样做,所以我不确定这是否真的必要。 有关我的环境的一些信息: 适用于Linux 5.6.8/Ubuntu 14的XAMPP 我使用的是Codeigniter框架3.0.2和PHP版本5.6.8。 是的,我检查了php.ini文件,在那里找不到session.start\u auto,所以我真的很困惑 我的登录页面代码如下所示: i
session\u start()
,而在我当前的代码中,我没有在任何地方这样做,所以我不确定这是否真的必要。
有关我的环境的一些信息:
适用于Linux 5.6.8/Ubuntu 14的XAMPP
我使用的是Codeigniter框架3.0.2和PHP版本5.6.8。
是的,我检查了php.ini文件,在那里找不到session.start\u auto,所以我真的很困惑
我的登录页面代码如下所示:
if ($this->login_model->authenticate($data))
{
#start session, save necessary data
$this->load->model('user_model');
$user = $this->user_model->get_user_by_email($data['email']);
$_SESSION['user_id'] = $user->user_id;
$_SESSION['user_email'] = $user->email;
$_SESSION['user_authenticated'] = TRUE;
$this->load->helper('url');
redirect('principal');
}
然后在每个页面中,我调用一个helper方法,检查用户是否通过以下方式进行身份验证:
public function user_is_authenticated()
{
if (!isset($_SESSION['user_authenticated']) || !$_SESSION['user_authenticated'] === TRUE)
{
redirect('login');
}
}
最后,我的注销页面执行以下操作:
public function end_session()
{
if (session_destroy())
{
redirect('login');
}
}
问题是它工作得很好,因为如果我不登录,我就无法访问具有该验证方法的页面。因此,我从未使用过会话\u start()
。我应该吗?在哪里
提前感谢在codeigniter中,您不需要使用session_start()。只需在config文件夹中的autoload.php文件中自动加载会话库
$autoload['libraries'] = array('session');
有关更多信息,请阅读本教程
或者,您可以使用本机会话进行本机会话读取
在codeigniter中,您不需要使用会话启动()。只需在config文件夹中的autoload.php文件中自动加载会话库
$autoload['libraries'] = array('session');
有关更多信息,请阅读本教程
或者,您可以使用本机会话进行本机会话读取
我应该吗?
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
不需要。您不必使用会话\u start()
为什么?
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
Codeigniter使用set\u userdata
方法设置会话
在
会话通常在每次页面加载时全局运行,因此会话类要么在控制器构造函数中初始化,要么由系统自动加载。在大多数情况下,会话类将在后台无人值守地运行,因此只要初始化该类,它就会在必要时读取、创建和更新会话
还有其他事情要做吗??
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
对。您必须在autoload.php中加载会话库
如何使用设置用户数据
?
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
如何检查会话是否已设置???
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
有没有其他资源??
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
我应该吗?
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
不需要。您不必使用会话\u start()
为什么?
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
Codeigniter使用set\u userdata
方法设置会话
在
会话通常在每次页面加载时全局运行,因此会话类要么在控制器构造函数中初始化,要么由系统自动加载。在大多数情况下,会话类将在后台无人值守地运行,因此只要初始化该类,它就会在必要时读取、创建和更新会话
还有其他事情要做吗??
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
对。您必须在autoload.php中加载会话库
如何使用设置用户数据
?
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
如何检查会话是否已设置???
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
有没有其他资源??
$newdata = array(
'user_id' => $user->user_id,
'user_email' => $user->email,
'user_authenticated' => TRUE
);
$this->session->set_userdata($newdata)
$user_id = $this->session->userdata('user_id');
if (isset($user_id)) {
echo $name;
}
else
{
echo "Not set";
}
会话似乎正在使用缓存,您能否在页面顶部转储sessionid并确保它返回空值。此外,我会在浏览器的匿名模式下尝试此操作,以消除缓存的模糊性
var_dump (session_id())
会话似乎正在使用缓存,您能否在页面顶部转储sessionid并确保它返回空值。此外,我会在浏览器的匿名模式下尝试此操作,以消除缓存的模糊性
var_dump (session_id())
在codeigniter中,无需使用会话\u start()
只用
$this->session->set_userdata();// to set the session values.
及
请查看更多信息。在codeigniter中,无需使用会话\u start()
只用
$this->session->set_userdata();// to set the session values.
及
请查看更多信息。使用$this->session->set_userdata()
。@NiranjanNRaju为什么?我真的看不出你的回答如何回答我的问题。我想我已经足够具体了。会话库@Otroletravaladna我将添加我的答案。使用$this->Session->set_userdata()
。@NiranjanNRaju为什么?我真的看不出你的回答如何回答我的问题。我想我已经足够具体了。会话库@Otroletravaladna我将添加我的答案。非常感谢,我知道魔法应该在哪里发生,不知道在哪里@Otroletravaladna欢迎来到Satck家庭。很高兴能帮助你谢谢你,我知道魔法应该在哪里发生,但不知道在哪里@Otroletravaladna欢迎来到Satck家庭。很高兴能帮你谢谢你的回复!这也回答了我的问题。谢谢你的回答!这也回答了我的问题。