2016-05-09 3 views
-1

После установки. Я установил логин в качестве контроллера по умолчанию и хочу перейти на панель управления администратора, но после отправки данных для входа вместо перенаправления на панель мониторинга он перенаправляется на установку контроллера снова.Почему функция перенаправления CodeIgniter не работает на реальном сервере, но работает нормально на localhost

Может ли кто-нибудь мне помочь?

Мой контроллер Войти в login.php:

<?php 
if (!defined('BASEPATH')) 
    exit('No direct script access allowed'); 

class Login extends CI_Controller 
{ 


    function __construct() 
    { 
     parent::__construct(); 
     $this->load->database(); 

    } 

    /***default functin, redirects to login page if no admin logged in yet***/ 
    public function index() 
    { 
     if ($this->session->userdata('admin_login') == 1) 
      redirect(base_url() . 'index.php?admin/dashboard', 'refresh'); 

     if ($this->session->userdata('doctor_login') == 1) 
      redirect(base_url() . 'index.php?doctor/dashboard', 'refresh'); 

     if ($this->session->userdata('patient_login') == 1) 
      redirect(base_url() . 'index.php?patient/dashboard', 'refresh'); 

     if ($this->session->userdata('nurse_login') == 1) 
      redirect(base_url() . 'index.php?nurse/dashboard', 'refresh'); 

     if ($this->session->userdata('pharmacist_login') == 1) 
      redirect(base_url() . 'index.php?pharmacist/dashboard', 'refresh'); 

     if ($this->session->userdata('laboratorist_login') == 1) 
      redirect(base_url() . 'index.php?laboratorist/dashboard', 'refresh'); 

     if ($this->session->userdata('accountant_login') == 1) 
      redirect(base_url() . 'index.php?accountant/dashboard', 'refresh'); 



     $config = array(
      array(
       'field' => 'login_type', 
       'label' => 'Account Type', 
       'rules' => 'required|xss_clean' 
      ), 
      array(
       'field' => 'email', 
       'label' => 'Email', 
       'rules' => 'required|xss_clean|valid_email' 
      ), 
      array(
       'field' => 'password', 
       'label' => 'Password', 
       'rules' => 'required|xss_clean|callback__validate_login' 
      ) 
     ); 

     $this->form_validation->set_rules($config); 
     $this->form_validation->set_message('_validate_login', ucfirst($this->input->post('login_type')) . ' Login failed!'); 
     $this->form_validation->set_error_delimiters('<div class="alert alert-error"> 
           <button type="button" class="close" data-dismiss="alert">×</button>', '</div>'); 

     if ($this->form_validation->run() == FALSE) { 
      $this->load->view('login'); 
     } else { 
      if ($this->session->userdata('admin_login') == 1) 
       redirect(base_url() . 'index.php?admin/dashboard', 'refresh'); 

      if ($this->session->userdata('doctor_login') == 1) 
       redirect(base_url() . 'index.php?doctor/dashboard', 'refresh'); 

      if ($this->session->userdata('patient_login') == 1) 
       redirect(base_url() . 'index.php?patient/dashboard', 'refresh'); 

      if ($this->session->userdata('nurse_login') == 1) 
       redirect(base_url() . 'index.php?nurse/dashboard', 'refresh'); 

      if ($this->session->userdata('pharmacist_login') == 1) 
       redirect(base_url() . 'index.php?pharmacist/dashboard', 'refresh'); 

      if ($this->session->userdata('laboratorist_login') == 1) 
       redirect(base_url() . 'index.php?laboratorist/dashboard', 'refresh'); 

      if ($this->session->userdata('accountant_login') == 1) 
       redirect(base_url() . 'index.php?accountant/dashboard', 'refresh'); 
     } 

    } 

    /***validate login****/ 
    function _validate_login($str) 
    { 
     if ($this->input->post('login_type') == '') { 
      $this->session->set_flashdata('flash_message', get_phrase('login_failed')); 
      return FALSE; 
     } 
     $query = $this->db->get_where($this->input->post('login_type'), array(
      'email' => $this->input->post('email'), 
      'password' => $this->input->post('password') 
     )); 
     if ($query->num_rows() > 0) { 
      $row = $query->row(); 
      if ($this->input->post('login_type') == 'admin') { 
       $this->session->set_userdata('login_type', 'admin'); 
       $this->session->set_userdata('admin_login', '1'); 
       $this->session->set_userdata('admin_id', $row->admin_id); 
      } 
      if ($this->input->post('login_type') == 'doctor') { 
       $this->session->set_userdata('login_type', 'doctor'); 
       $this->session->set_userdata('doctor_login', '1'); 
       $this->session->set_userdata('doctor_id', $row->doctor_id); 
      } 
      if ($this->input->post('login_type') == 'patient') { 
       $this->session->set_userdata('login_type', 'patient'); 
       $this->session->set_userdata('patient_login', '1'); 
       $this->session->set_userdata('patient_id', $row->patient_id); 
      } 
      if ($this->input->post('login_type') == 'nurse') { 
       $this->session->set_userdata('login_type', 'nurse'); 
       $this->session->set_userdata('nurse_login', '1'); 
       $this->session->set_userdata('nurse_id', $row->nurse_id); 
      } 
      if ($this->input->post('login_type') == 'pharmacist') { 
       $this->session->set_userdata('login_type', 'pharmacist'); 
       $this->session->set_userdata('pharmacist_login', '1'); 
       $this->session->set_userdata('pharmacist_id', $row->pharmacist_id); 
      } 
      if ($this->input->post('login_type') == 'laboratorist') { 
       $this->session->set_userdata('login_type', 'laboratorist'); 
       $this->session->set_userdata('laboratorist_login', '1'); 
       $this->session->set_userdata('laboratorist_id', $row->laboratorist_id); 
      } 
      if ($this->input->post('login_type') == 'accountant') { 
       $this->session->set_userdata('login_type', 'accountant'); 
       $this->session->set_userdata('accountant_login', '1'); 
       $this->session->set_userdata('accountant_id', $row->accountant_id); 
      } 
      return TRUE; 
     } else { 
      $this->session->set_flashdata('flash_message', get_phrase('login_failed')); 
      return FALSE; 
     } 
    } 
    /*******LOGOUT FUNCTION *******/ 
    function logout() 
    { 
     $this->session->unset_userdata(); 
     $this->session->sess_destroy(); 
     $this->session->set_flashdata('flash_message', get_phrase('logged_out')); 
     redirect(base_url() . 'index.php?login', 'refresh'); 
    } 

    /***DEFAULT NOR FOUND PAGE*****/ 
    function four_zero_four() 
    { 
     $this->load->view('four_zero_four'); 
    } 

    /***RESET AND SEND PASSWORD TO REQUESTED EMAIL****/ 
    function reset_password() 
    { 
     $account_type = $this->input->post('account_type'); 
     if ($account_type == "") { 
      redirect(base_url(), 'refresh'); 
     } 
     $email = $this->input->post('email'); 
     $result = $this->email_model->password_reset_email($account_type, $email); //SEND EMAIL ACCOUNT OPENING EMAIL 
     if ($result == true) { 
      $this->session->set_flashdata('flash_message', get_phrase('password_sent')); 
     } else if ($result == false) { 
      $this->session->set_flashdata('flash_message', get_phrase('account_not_found')); 
     } 


    } 

    /***LOGIN AS ANOTHER USER LIKE DOCTOR,PATIENT,PHARMACIST,LABORATORIST ETC******/ 
    function login_as($user_type = '', $user_id = '') 
    { 
     $this->session->set_userdata('login_type', $user_type); 
     $this->session->set_userdata($user_type . '_login', '1'); 
     $this->session->set_userdata($user_type . '_id', $user_id); 
     redirect(base_url() . 'index.php?' . $user_type . '/dashboard', 'refresh'); 
    } 
} 
+0

сделал u загрузите вспомогательный url? – kanchan

+0

$ this-> load-> helper ('url'); – kanchan

+0

Как написать свою функцию? –

ответ

0

ли вы проверить печенье в живом сервере? Я испытал нечто похожее на твое. Функция redirect() не работала на реальном сервере, но на самом деле вещь, которая не работает, была занята сессией user_data. Я просто разрешил файл cookie $config['sess_cookie_name'] = "MY-COOKIE*******" в реальном сервере, и все идет хорошо.

Смежные вопросы