0
我正在做一個簡單的Codeigniter應用程序與會議和登錄(我對Codeigniter很新,所以爲此我的問題可能很容易專家)。一切工作正常,我使用用戶名和密碼登錄,然後我進入我的私人區域。但是,如果我在登錄時粘貼Url(http://x.x.x.x/lab/index.php/admin/dashboard
),並在記錄時粘貼,我可以看到所有內容,我的意思是包含所有內容的表格。我剛剛得到這些錯誤:管理Codeigniter會話和登錄
這是我Loginview:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OpediaLab</title>
</head>
<body>
<?php echo validation_errors(); ?>
<?php echo form_open('Verifylogin'); ?>
<div class="container">
<div class="inputs">
<label for="username">Username:</label>
<input class ="" type="text" size="20" id="username" placeholder="Il tuo nome utente" name="username"/>
<input class="btn btn-info" type="submit" value="Login" style="margin-left:100px;"/>
<br>
<label for="password">Password:</label>
<input class ="" type="password" size="20" id="passowrd" placeholder="La tua password" name="password" />
</div>
</div>
</form>
</body>
</html>
這是Verifylogin控制器:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class VerifyLogin extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('user','',TRUE);
$this->load->helper('url');
}
function index()
{
//This method will have the credentials validation
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required');
$this->form_validation->set_rules('password', 'Password', 'trim|required|callback_check_database');
if($this->form_validation->run() == FALSE)
{
//Field validation failed. User redirected to login page
$this->load->view('login_view');
}
else
{
// session data
$username = $this->session->userdata('username');
//Pass it in an array to your view like
$data['username']=$username;
// $this->load->view('home_view',$data);
$this->load->view('home_view', $data);
redirect(site_url('admin/dashboard'), 'refresh');
}
//
}
function check_database($password)
{
//Field validation succeeded. Validate against database
$username = $this->input->post('username');
//query the database
$result = $this->user->login($username, $password);
if($result)
{
$sess_array = array();
foreach($result as $row)
{
$sess_array = array(
'id' => $row->id,
'username' => $row->username
);
$this->session->set_userdata('logged_in', $sess_array);
}
return TRUE;
}
else
{
$this->form_validation->set_message('check_database', 'Invalid username or password');
return false;
}
}
}
?>
,這一個是默認的控制器的login.php :
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Login extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
if (! $this->session->userdata('logged_in')){
$tutti_libri = $this->libri->get_all();
$tutte_guide = $this->guide->get_all();
$tutti_video = $this->video->get_all();
$tutte_animazioni = $this->animazioni->get_all();
$tutte_registrazioni = $this->registrazioni->get_all();
/*$this->load->view('home_view',);*/
$this->load->vars(array(
'libri' => $tutti_libri,
'guide' => $tutte_guide,
'video' => $tutti_video,
'animazioni' => $tutte_animazioni,
'registrazioni' => $tutte_registrazioni
));
//$this->load->view('back/header.php');
$this->load->view('login_view.php');
//$this->load->view('back/header.php');
}
else
{
echo "sessione non attiva";
}
}
public function login()
{
if (! $this->session->userdata('logged_in')){
$tutti_libri = $this->libri->get_all();
$tutte_guide = $this->guide->get_all();
$tutti_video = $this->video->get_all();
$tutte_animazioni = $this->animazioni->get_all();
$tutte_registrazioni = $this->registrazioni->get_all();
/*$this->load->view('home_view',);*/
$this->load->vars(array(
'libri' => $tutti_libri,
'guide' => $tutte_guide,
'video' => $tutti_video,
'animazioni' => $tutte_animazioni,
'registrazioni' => $tutte_registrazioni
));
//$this->load->view('back/header.php');
$this->load->view('login_view.php');
//$this->load->view('back/header.php');
}
else
{
echo "sessione non attiva";
}
}
function logout()
{
$this->session->unset_userdata('logged_in');
session_destroy();
redirect(site_url(''), 'refresh');
}
}
所以,我想說的是很簡單的,如果我的腦袋該網址我應該重定向(或保留)在login_view頁。我怎樣才能做到這一點?