我试图跟随youtube tuts在CodeIgniter上创建一个登录系统。 我在php框架上相当新,我选择CI的简洁性。 所以我有一个数组,我需要存储会话数据:
$replace = 'replace';
$my_string = ' abC.com, Abc.net, aBc.org, ABC.info, aBC.biz ';
$lowerCase = 'abc';
$str_replace = str_replace($lowerCase, $replace, $my_string);
echo $str_replace;
教程使用userdata();功能
$data = array('email' => $this->input->post('email'),
is_logged_in' => true);
但是当他尝试打印de session array时:
$this->session->userdata($data);
alluserdata();不推荐使用,所以我阅读了doc,我发现userdata是一个遗留函数。 我想学习我写的内容,所以我尝试对CI3进行现代化的代码更新和清理。
是使用userdata();对CI3有好处吗?或者我必须使用$ _SESSION []?或$ this->会话?
问题在于,如果我尝试使用
$这 - >会话而>数据
而不是:
print_r($this->session->all_userdata($data));
我的输出没什么。 我只想在会话中输出数据数组,这样我才能理解它是否正常工作。 提前谢谢
修改 如果我使用set_userdata()进行设置会话而只使用print_r($ this-> session-> userdata());对于打印会话我只有:
print_r($this->session->data);
而不是关于浏览器的信息,时间ecc ...是正常的吗?
答案 0 :(得分:3)
设置会话数据
$newdata = array('email' => $email, 'is_logged_in' => true);
$this->session->set_userdata($newdata);
获取会话数据
$email = $this->session->userdata('email');
$is_logged_in = $this->session->userdata('is_logged_in');
OR
$dataArray = $this->session->userdata();
答案 1 :(得分:2)
在Codignitor 3中,您可以从 $ this-> session obejct获取值:
//Normal PHP
$name = $_SESSION['name'];
// IN Ci:
$name = $this->session->name
// you can also get by
$name = $this->session->userdata('name');
您的代码有什么问题?
您正在使用会话对象
$this->session->data
这应该是
$this->session->userdata
是使用userdata();对CI3有好处吗?或者我必须使用_SESSION []?
为此,使用框架libaray更好,因为您可以轻松管理和重用代码。