salve!
seguendo il wiki ho creato il sistema di login.
funziona, solo che io vorrei usare solo le sessioni in modo che quando si chiude il browser il login va rifatto (come nelle sessioni classiche di PHP).
invece mi sono accorto che con CI nn è così.
al submit del form richiamo questo:
Codice PHP:
<?php
class DoLogin extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('user_model', 'username', TRUE);
}
public function index() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required');
$this->form_validation->set_rules('password', 'Password', 'trim|required|sha1|callback_check_database');
if ($this->form_validation->run() == FALSE) {
$data = array();
$data['titolo'] = 'Login';
$this->load->view('header', $data);
$this->load->view('login_view', $data);
$this->load->view('footer');
} else {
redirect('home', 'refresh');
}
}
function check_database($password) {
$username = $this->input->post('username');
$result = $this->username->login($username, $password);
if ($result) {
$sess_array = array();
foreach ($result as $row) {
$sess_array = array(
'id' => $row->id,
'username' => $row->utente
);
$this->session->set_userdata('logged_in', $sess_array);
}
return TRUE;
} else {
$this->form_validation->set_message('check_database', 'Invalid username or password');
return false;
}
}
}
come posso fare??