这是我的控制器,其中用户名检查与电子邮件id,我有这个登录的注册区。我的需要是采取会话数据,包括会话id从这个代码可以有人请帮助整理这一点吗?
控制器
public function login(){
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required|min_length[5]');
if($this->form_validation->run() == TRUE){
$username = $_POST['username'];
$password = md5($_POST['password']);
//check user in db
//session details for email and phone
$this->db->select('*');
$this->db->from('users');
$query1 = $this->db->get();
$sess = $query1->row();
$this->db->select('*');
$this->db->from('users');
$this->db->where(array('email'=>$username, 'password'=>$password));
$query = $this->db->get();
$user = $query->row();
//if user exists
if($user->email){
//temp messAGE
$this->session->set_flashdata("success",'you are logged in');
//SET session variables
$_SESSION['user_logged']= TRUE;
$_SESSION['username']= $user->username;
//redirection to profile page
redirect("user/profile", "refresh");
}
else{
$this->session->set_flashdata("error",'No Such Accounts found or please check username and password');
redirect("home/index", "refresh");
}
}
$this->load->view('login');
}
4条答案
按热度按时间pkwftd7m1#
首先,您应该将查询或配置项ACTIVE RECORD放在模型中,而不是放在控制器中。
试试这个
CI DB ACTIVE RECORD
pokxtpni2#
多年后我得到了答案,因为当时我在codeignitor方面的经验较少,我感到困惑。我知道这是一个非常简单的问题,但这是我开始在codeignitor工作的一天,所以我自己写答案
vuv7lop33#
如果您需要会话的id,您可以使用session_id。还有一件事,请使用application/config/autoload.php加载会话
比你可以在控制器或模型或视图中使用它。
或者如果你想要一些用户信息,如电子邮件,id等,这样你就可以使用。
r1wp621o4#
首先,当用户登录时,您需要获取会话数据数组的用户ID。假设您的会话数据数组是
user_data()
。