您好我需要在我的暂存网站索引页面添加身份验证。每当用户尝试打开暂存网站时,它都应该显示登录页面。一旦用户登录,那么他只能看到该网站。我试过添加了一个用于显示的代码登录页面,但它显示空白页面也没有显示任何错误消息。这是我的代码。 正如我的网站看起来链接将是例如:staging.website.com 每当用户尝试打开此站点时,都应首先请求登录。
控制器:
class Welcome extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->library('form_validation');
$this->load->model('index_model');
$this->load->model('login_model');
}
public function index()
{
if($this->session->userdata('admin_logged_in'))
{
$data['admin_details'] = $this->session->userdata('admin_logged_in');
$data['records2'] = $this->index_model->get_all_banners();
$data['records7'] = $this->index_model->get_all_banners();
$data['mainpage'] = "index";
$this->load->view('templates/templatessss',$data);
}
else
{
$this->load->view('login');
}
}
public function login(){
$this->form_validation->set_rules('user_name','User Name','trim|required|xss_clean');
$this->form_validation->set_rules('password','Password','trim|required|xss_clean');
$this->form_validation->set_error_delimiters('<span class="ferror"> ','</span><br />');
if($this->form_validation->run()==FALSE){
$this->load->view('login');
}
else{
$user_name = $this->input->post('user_name');
$password = $this->input->post('password');
if($this->login_model->login_user($user_name,$password)):
redirect('welcome');
else:
$data['error'] = '<span class="ferror"> User Name or Password enter wrong. Please try again </span>';
$this->load->view('login',$data);
endif;
}
}
视图(login.php中):
<?php
$form_attributes = array('class'=>'admin_login_form', 'name'=>'admin_login_form', 'id'=>'admin_login_form', 'enctype' => "multipart/form-data");
$user_name = array('name' => 'user_name', 'id' => 'user_name', 'value' => set_value('user_name'),'class' =>'text');
$password = array('name' => 'password', 'id' => 'password','class' =>'text');
$submit = array('id' => 'login_details', 'value' => 'Login', 'name' => 'login_details');
?>
<?php echo form_open('welcome/login',$form_attributes);?>
<?php echo (validation_errors()) ? validation_errors() : ' ';?>
<?php echo (isset($error)) ? $error : '' ;?>
<?php echo form_label('User Name', $user_name['id']);?>
<?php echo form_input($user_name); if(!$this->input->post('user_name')) echo form_error('$user_name');?>
<?php echo form_label('Password', $password['id']);?>
<?php echo form_password($password);?>
<div class="sep"></div>
<button type="submit" class="ok"><?php echo form_submit($submit);?></button>
模型(login_model.php):
class login_model extends MY_Model
{
function login_user($user_name = '', $password=''){
$userdetails = array(
'user_name' => $user_name,
'password' => md5($password),
);
$this->db->where($userdetails);
$query = $this->db->get('login_details');
if($query->num_rows()):
$user = $query->result();
$sess_arry = array(
'user_id' => $user[0]->user_id,
'name' => $user[0]->name
);
$this->session->set_userdata('admin_logged_in', $sess_arry);
return true;
else:
return false;
endif;
}
}
答案 0 :(得分:1)
在您的控制器中添加此代码:
class Welcome extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->library('form_validation');
$this->load->model('index_model');
$this->load->model('login_model');
}
public function index()
{
if($this->session->userdata('admin_logged_in'))
{
$data['admin_details'] = $this->session->userdata('admin_logged_in');
$data['records2'] = $this->index_model->get_all_banners();
$data['records7'] = $this->index_model->get_all_banners();
$data['mainpage'] = "index";
$this->load->view('templates/templatessss',$data);
}
else
{
redirect('welcome/login');
}
我希望它对你有用!!
答案 1 :(得分:0)
更改您的其他条件
else
{
$this->load->view('login');
}
要
else
{
redirect('login');
}
答案 2 :(得分:0)
欢迎课程
function __construct()
{
parent::__construct();
$this->load->helper("url");
if (!$this->session->userdata('admin_logged_in')){
redirect(base_url("login"));
}
$this->load->library('form_validation');
$this->load->model('index_model');
$this->load->model('login_model');
}
登录类
class Login extends CI_Controller{
function index(){
if (isset($this->input->post())){
$this->form_validation->set_rules('user_name','User Name','trim|required|xss_clean');
$this->form_validation->set_rules('password','Password','trim|required|xss_clean');
$this->form_validation->set_error_delimiters('<span class="ferror"> ','</span><br />');
if($this->form_validation->run()==FALSE){
$this->load->view('login');
}
else{
$user_name = $this->input->post('user_name');
$password = $this->input->post('password');
if($this->login_model->login_user($user_name,$password)):
redirect('welcome');
else:
$data['error'] = '<span class="ferror"> User Name or Password enter wrong. Please try again </span>';
$this->load->view('login',$data);
endif;
}
}else{
$this->load->view("login");
}
}
这应该可以正常工作