私は長い間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');
}
}
みんなありがとう、そして私はあなたの答えを楽しみにしています\提案