За последние 24 часа нас посетили 5946 программистов и 555 роботов. Сейчас ищут 263 программиста ...

Ошибка при входе в админку!

Тема в разделе "PHP для новичков", создана пользователем RadoXX, 8 ноя 2018.

  1. RadoXX

    RadoXX Новичок

    С нами с:
    20 янв 2017
    Сообщения:
    53
    Симпатии:
    0
    Всем привет! /Подскажите пожалуйста где может скрываться следующая проблема?При выходе из админки и попытке зайти снова в админку,срабатывает функция Access Denied.Скажите пожалуйста где допущенна ошибка? В какую сторону смотреть?

    Вот содержимое файла админки login.php.

    PHP:
    1. class login extends Admin_Login
    2. {
    3.     public function __construct()
    4.     {
    5.         parent::__construct();
    6.         $this->load->model('crud_model');
    7.         $this->load->database();
    8.         $this->session->set_userdata('comefrom',current_url());
    9.      
    10.     }
    11.     public function index()
    12.     {
    13.        if (TRUE==$this->session->userdata('logged_in'))
    14.             redirect(base_url() . 'administrator/dashboard', 'refresh');
    15.         $secret_input = $this->uri->segment(2);
    16.         $config = array(
    17.             array(
    18.                 'field' => 'email',
    19.                 'label' => 'Email',
    20.                 'rules' => 'required|xss_clean|valid_email'
    21.             ),
    22.             array(
    23.                 'field' => 'password',
    24.                 'label' => 'Password',
    25.                 'rules' => 'required|xss_clean'
    26.             )
    27.         );
    28.         $this->form_validation->set_rules($config);
    29.         if ($this->form_validation->run() == FALSE) {
    30.          
    31.        $secret = $this->db->get_where('settings', array('type' => 'security'))->row();
    32.        $key = $this->lib->decrypt($secret->description, $this->config->item('product'));
    33.        $secret_key = $this->session->_unserialize($key);
    34.        if(isset($secret_input) && isset($secret_key['secret_key']) && $secret_input === $secret_key['secret_key']){
    35.      
    36.             $data['secret'] = $secret_input;
    37.             $this->template->write('title', 'Admin Login')
    38.                        ->add_js('jquery-1.11.0.min.js')
    39.                        ->add_js('admin.app.js')
    40.                        ->add_js('login.js')
    41.                        ->write('theme_path', base_url().'assets')
    42.                        ->write_view('login_content', 'admin_login/login',$data)
    43.                        ->render();
    44.         } else if (empty($secret_input) || $secret_input != $secret_key['secret_key'] ){
    45.      
    46.         show_error("Access Denied");
    47.      
    48.        }
    49.     } else {
    50.         $email = $this->input->post('email');
    51.         $password = cleanhtml($this->input->post('password'));
    52.         if(empty($email) || empty($password)){
    53.             show_error("Access Denied");
    54.      
    55.         }
    56.      
    57.         $this->session->sess_destroy();
    58.         $check_auth = $this->admin_auth->login($email,$password);
    59.      
    60.         if (true === $check_auth) {
    61.             $success['status'] = TRUE;
    62.             $success['name'] = $this->session->userdata('nick_name');
    63.             $success['message'] = 'Login Success Wait a moment for redirect to admin dashboard';
    64.             $success['url'] = base_url() . 'administrator/dashboard';
    65.             print json_encode($success);
    66.         } else {
    67.             $success['status'] = FALSE;
    68.             $success['message'] = 'invalid username or password';
    69.             print json_encode($success);
    70.      
    71.         }
    72.     }
    73.      
    74.     }
    75. }
     
  2. askanim

    askanim Активный пользователь

    С нами с:
    7 апр 2016
    Сообщения:
    2.165
    Симпатии:
    161
    Адрес:
    GABRIEL
    Функция или сообщение об ошибке ?
     
  3. RadoXX

    RadoXX Новичок

    С нами с:
    20 янв 2017
    Сообщения:
    53
    Симпатии:
    0
    Функция! вот онаю

    PHP:
    1. function show_error($heading, $message, $template = 'error_general', $status_code = 500)
    2.     {
    3.         set_status_header($status_code);
    4.  
    5.         $message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>';
    6.  
    7.         if (ob_get_level() > $this->ob_level + 1)
    8.         {
    9.             ob_end_flush();
    10.         }
    11.         ob_start();
    12.         include(APPPATH.'errors/'.$template.'.php');
    13.         $buffer = ob_get_contents();
    14.         ob_end_clean();
    15.         return $buffer;
    16.     }