【发布时间】:2025-12-07 02:10:02
【问题描述】:
我正在尝试学习 codeigniter,我从基本的登录功能开始。一切正常,直到我想将成员重定向到他们的主页。 我似乎 codeigniter 无法重定向到它。它总是停在这个网址:
我希望这个重定向到站点/成员区域,如 mycode。这是我的控制器代码:
class login extends ci_controller{
function index(){
$data['main_content'] = 'login_form';
$this->load->view('includes/template.php', $data);
}
function validate_credentials(){
$this->load->model('membership_model');
$query = $this->membership_model->validate();
if($query)//user's credentails validated
{
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true);
$this->session->set_userdata($data);
redirect('site/members_area');
}
else
{
$this->index();
}
}
}
这是我的模型代码:
class Membership_model extends ci_model{
function validate(){
$this->db->where('username', $this->input->post('username'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get('membership');
if($query->num_rows == 1){
return true;
}
}
}
我已经在我的自动加载中输入了帮助程序 url 和表单,但它仍然不起作用。 有人可以帮忙吗?
【问题讨论】:
-
在您的模型中将
if($query->num_rows == 1){更改为if($query->num_rows > 0) { -
也不要使用 MD5 进行密码散列,这是非常不安全的,使用此 php.net/manual/en/function.password-hash.php 进行散列并使用此验证 php.net/manual/en/function.password-verify.php
-
我确实从 == 1 更改为 >0 但没有任何变化。我的意思是我的代码仍然无法运行。我知道md5对密码不好,这个只是codeigniter的一种做法。
-
Login,CI_Controller,CI_Model. -
还是不行。
标签: php .htaccess codeigniter redirect