使用codeigniter php

时间:2017-06-26 06:40:55

标签: php codeigniter

您好我需要在我的暂存网站索引页面添加身份验证。每当用户尝试打开暂存网站时,它都应该显示登录页面。一旦用户登录,那么他只能看到该网站。我试过添加了一个用于显示的代码登录页面,但它显示空白页面也没有显示任何错误消息。这是我的代码。 正如我的网站看起来链接将是例如: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;
}
}

3 个答案:

答案 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");
   }
}

这应该可以正常工作