<?php
class Login_model extends CI_Model {
public function login() {
$username = $_POST['uname'];
$password = $_POST['pw'];
$query = $this->db->get_where('test_logins', array('name' => $username, 'password' => $password));
$count = $query->num_rows() > 0;
if ($count == 1) {
foreach ($query->result_array() as $row)
{
$exam_id=$row['id'];
}
$query2 = $this->db->get_where('candidates', array('email' =>$_POST['email']));
$count2=$query2->num_rows();
//echo($count2);
if($count2==1){
foreach ($query2->result_array() as $row2)
{
$candidate_id=$row2['id'];
$part1=$row2['part1'];
$part2=$row2['part2'];
$part3=$row2['part3'];
$part4=$row2['part4'];
}
//set session
$newdata1 = array(
'username' => $username,
'exam_id'=> $exam_id,
'candidate_id'=> $candidate_id,
'logged_in' => TRUE
);
$this->session->set_userdata($newdata1);
if(empty($part1)){
return 'part1';
}else if(empty($part2)){
return 'part2';
}else if(empty($part3)){
return 'part3';
}else if(empty($part4)){
return 'part4';
}
}else{
$data = array(
'name' => $_POST['name'],
'email' => $_POST['email'],
'exam_id' => $exam_id,
'contact' => $_POST['mobile'],
);
$this->db->insert('candidates', $data);
$candidate_id=$this->db->insert_id();
$newdata = array(
'username' => $username,
'exam_id'=> $exam_id,
'candidate_id'=> $candidate_id,
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
return 'part1';
}//else insert candidate
}else {
return FALSE;
}
}
}
?>
检查登录ID和密码是否正确。如果是,则检查用户是否已注册考试,如果注册用户创建会话,则检查剩下的考试部分并重定向到该部分控制器,如果未注册创建记录并创建会话,则重定向到考试的第1部分,但是第一次尝试时会话始终为空,并且从第二次尝试开始设置。
答案 0 :(得分:0)
你提到的代码有一些缺陷,所以我写得很干净,并在codeigniter方式这里plz尝试这个,然后让我知道。我无法将整个代码作为注释,因此将其写为答案:)
<?php
class Login_model extends CI_Model {
public function login()
{
$username = $this->input->post['uname'];
$password = $this->input->post['pw'];
$exam_id = 0;
$candidate_id = 0;
$query = $this->db->get_where('test_logins', array(
'name' => $username,
'password' => $password
));
if ($query->num_rows() > 0)
{
$row = $query->row();
if (isset($row))
{
$exam_id = $row->id;
}
$query2 = $this->db->get_where('candidates', array(
'email' => $this->input->post('email')
));
if ($query2->num_rows() > 0)
{
$row2 = $query2->row();
if (isset($row2))
{
$candidate_id = $row2->id;
$part1 = $row2->part1;
$part2 = $row2->part2;
$part3 = $row2->part3;
$part4 = $row2->part4;
}
if(empty($part1)) { return 'part1'; }
else if(empty($part2)) { return 'part2'; }
else if(empty($part3)) { return 'part3'; }
else if(empty($part4)) { return 'part4'; }
}
else
{
$this->db->insert('candidates', array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'exam_id' => $exam_id,
'contact' => $this->input->post('mobile')
));
return 'part1';
}
$this->session->set_userdata(array(
'username' => $username,
'exam_id'=> $exam_id,
'candidate_id'=> $candidate_id,
'logged_in' => TRUE
));
} else {
return FALSE;
}
}
}