Я следовал за this удивительным учебным пособием, чтобы создать очень простой (один уровень) систему входа. Но я всегда перенаправлялся обратно в свою регистрационную форму (login() method in controller
) каждый раз, когда я пытался войти в систему.php/codeigniter login not working
Это код моего контроллера:
public function login() {
$this->load->library('form_validation');
$this->form_validation->set_rules('txt_email', 'Email', 'required|valid_email');
if($this->form_validation->run() !== FALSE)
{
$log_in = $this->backend_m->log_in($this->input->post('txt_email'), $this->input->post('txt_password'));
if($log_in !== FALSE)
{
$_SESSION['username'] = $this->input->post('txt_email');
redirect('backend/index');
}
//redirect('backend/index');
}
$this->load->view('backend/login_v');
}
Это backend/index
первый код (один я перенаправление после входа в систему, я думаю, что ошибка здесь, потому что я всегда перенаправлены обратно на backend/login
):
public function index() {
//check authorization
if(!isset($_SESSION['username']))
redirect('backend/login');
Это моя модель:
public function log_in($email, $password) {
$result = $this->db->where('email', $email)->where('password', sha1($password))->get('mspengurus');
if($result->num_rows() > 0)
return $result->row();
return FALSE;
}
Это мое мнение:
<body>
<div id="login">
<h1>Login - GABDB</h1>
<?php echo form_open('backend'); ?>
<table>
<tr>
<td>
<?php echo form_label('Email :', 'lbl_email'); ?>
</td>
<td>
<?php echo sha1('admin'); ?>
<?php echo form_input('txt_email', set_value('txt_email'), 'id="txt_email"'); ?>
<?php echo validation_errors(); ?>
</td>
</tr>
<tr>
<td>
<?php echo form_label('Password :', 'lbl_password'); ?>
</td>
<td>
<?php echo form_password('txt_password', '', 'id="txt_password"'); ?>
</td>
</tr>
<tr>
<td colspan="2">
<?php echo form_submit('btn_submit', 'Log In', 'id = "btn_submit"'); ?>
</td>
</tr>
</table>
<?php echo form_close(); ?>
</div>
</body>
По некоторым причинам, ваш сеанс не установлен. попробуйте поставить echo для $ this-> input-> post ('txt_email') и $ _SESSION ['username'] внутри условия if, если это проверить. –