0
我正在编写我的第一个CI项目并尝试编写一个loginscript。一切工作几乎没有问题,除了会议用户数据不可用(甚至不是如果我检查我的Cookie /会话在Firefox中)。CodeIgniter Session Userdate似乎不存在
我不明白为什么会话userdata只有在登录后才可用,但如果我再次加载相同的页面(不是刷新,而是一个新的负载),我希望我仍然会登录,但我'米注销?即使我尝试读取会话userdata它不存在。
我简化我的脚本实例版本的计算器。谁能告诉我这个会议问题可以如何解决?
问候, 圭多
<?php
class Test extends CI_Controller
{
function index()
{
$logged_in = $this->is_logged_in();
if($logged_in) {
echo "You are logged in. <a href='test/logout'>Logout</a> | <a href='../'>Return to index</a>";
}
else {
echo "You are logged out";
echo form_open('test/check_login');
echo "Email: ".form_input('email', set_value('email'));
echo "Password: ".form_password('password', set_value('password'));
echo form_submit('submit','Login');
echo form_close();
}
}
function is_logged_in() // check if user has logged in
{
// AUTOLOAD SESSIONS HAS SET in autoload.php-config >> $autoload['libraries'] = arra y('database', 'session', 'email');
$is_logged_in = $this->session->userdata('is_logged_in');
if($is_logged_in) {
return TRUE;
}
else {
return FALSE;
}
}
function check_login()
{
$client_id = $this->validate();
if(is_numeric($client_id)) // if the user's credentials validated then user exists
{
$data = array(
'client_id' => $client_id,
'is_logged_in' => true
);
$this->session->set_userdata($data);
}
$this->index();
}
// normally we put this function in a model, but for this example we put it here.
function validate() // check if user exists in database
{
$this->db->where('email', $this->input->post('email'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get('client_users'); // this is our user table
if($query->num_rows == 1) // user exists
{
$row = $query->row();
return $row->id_client;
}
else
{
return false;
}
}
function logout()
{
$this->session->sess_destroy(); // kill session, so user will be logged out.
redirect('/test');
}
}
?>
好吧,看来东西在本地主机上使用'会话'是错误的......但我不知道问题出现在哪里。 – 2012-01-31 19:43:27
我已经解决了这个问题......这是一个'本地主机的事情。因为我在本地主机上测试,似乎CI的域设置必须是空的。 (请参阅http://codeigniter.com/forums/viewthread/209191/) – 2012-01-31 20:05:17