Ошибка PHP обнаружена серьезность: 8192 Я получаю сообщение об ошибке - PullRequest
0 голосов
/ 06 июля 2018

Методы с тем же именем, что и их класс, не будут конструкторами в будущих версиях PHP, логин имеет устаревшую серьезность конструктора: 8192

Я получаю сообщение об ошибке в строке 3-й и 26-й строке в файле php входа Ошибка 26-й строки: неопределенное свойство: логин :: $ load Я получаю ошибку

МОЙ КОД

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

логин класса расширяет CI_Controller {

/**
 * Index Page for this controller.
 *
 * Maps to the following URL
 *      http://example.com/index.php/welcome
 *  - or -
 *      http://example.com/index.php/welcome/index
 *  - or -
 * Since this controller is set as the default controller in
 * config/routes.php, it's displayed at http://example.com/
 *
 * So any other public methods not prefixed with an underscore will
 * map to /index.php/welcome/<method_name>
 * @see http://codeigniter.com/user_guide/general/urls.html
 */
public function index()
{
    $this->load->view('login');
}
function login(){
    $data ["title"] = "CodeIgniter Simple Login Form with session";
    $this->load->view("login", data);

}
function login_validation(){
    $this->load->library('form_validation');
    $this->form_validation->set_rules('username', 'Kullanýcý Adý', 'required');
    $this->form_validation->set_rules('password', 'password', 'required');
    if($this->form_validation->run())
    {
        $username = $this->input->post('username');
        $password = $this->input->post('password');
        $this->load->model('login_model');
        if($this->login_model->can_login($username, $password))
        {

            $session_data = array(

                'username'  => $username

            );
            $this->session->set_userdata($session_data);
            redirect(base_url("login/enter"));

        }else{
            $this->session->flash_data('error' , 'Invalid Username and Password');
            redirect(base_url("login"));

        }
    }else
        {
            $this->login();
    }
    function enter()
    {
        if($this->session->userdata('username') != ''){
            redirect(base_url("dashboard"));

        }else{
                redirect(base_url("login"));
        }

    }


}

} ?>

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вы не должны называть функцию класса так же, как класс. У вас есть функция login(), а класс с именем login вызывает предупреждение в строке 3. Когда PHP видит совпадающие имена классов и функций, он считает, что функция является конструктором класса. Но это не то, что вы хотите, и это причина, по которой вы получаете сообщение об ошибке в строке 26.

Кажется, нет никаких причин для конструктора в вашем классе. (Если вам действительно не нужно загружать помощника или другую библиотеку)

Чтобы устранить проблему, удалите функцию index(), затем переименуйте login() в index(). Наконец, используйте заглавную букву L в имени класса. Так что измени это

class login extends CI_Controller {

к этому

class Login extends CI_Controller {

Имя файла также должно иметь заглавную первую букву, т.е. Login.php

0 голосов
/ 06 июля 2018

Надеюсь, это поможет вам:

Примечание : имя контроллера должно начинаться только с заглавной буквы

Загрузка url Сначала помощник, как это:

В autoload.php

$autoload['helper'] = array('url');

Или загрузите в свой Login контроллер следующим образом:

class Login extends CI_Controller 
{
  public function __construct()
  {
    parent::__construct();
    $this->load->helper('url');
   }
}  

Для более: https://www.codeigniter.com/user_guide/helpers/url_helper.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...