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页。我怎样才能做到这一点?