很长一段时间以来,我一直是stackoverflow的狂热读者,现在轮到我提问了。
我遵循http://net.tutsplus.com/tutorials/php/easy-authentication-with-codeigniter/教程并设法让它为我自己完美地工作,但是我需要稍微扩展系统。在验证用户之后,我需要能够拉出经过身份验证的人的其他行字段并存储在会话变量中,以便在其他控制器中用于将信息发送回数据库。
例如,我想在会话变量 $f_name 中有一个,我需要他们的 $username。我高高在上,找到了答案,但他们只会让我感到困惑。
我的模型:
class admin_model extends CI_Model {
function __construct( )
{
}
public function verify_user($user_id, $password)
{
$q = $this->db->where('user_id', $user_id)
->where('password', sha1($password))->limit(1)->get('users');
if ( $q->num_rows > 0 ){
return $q->row();
}
return false;
}
}
我的控制器:
class admin extends CI_Controller {
function __construct()
{
parent:: __construct();
session_start();
}
public function index()
{
if ( isset($_SESSION['user_id'])){
redirect('welcome');
}
$this->load->library('form_validation');
$this->form_validation->set_rules('user_id', 'User ID', 'required|min_length[8]');
$this->form_validation->set_rules('password', 'Password', 'required|min_length[4]');
if ($this->form_validation->run() !==false){
$this->load->model('admin_model');
$res = $this
->admin_model
->verify_user(
$this->input->post('user_id'),
$this->input->post('password')
);
if ($res !== false) {
$_SESSION['user_id'] = $this->input->post('user_id');
redirect ('welcome');
}
}
$this->load->view('login_view');
}
public function logout(){
session_destroy();
redirect ('admin');
}
}
再次感谢大家,我期待您的回答\建议