遇到PHP错误严重性:8192我遇到了错误

时间:2018-07-06 11:37:49

标签: javascript php codeigniter

与类相同名称的方法在将来的PHP版本中将不再是构造函数,login的构造函数严重性已弃用:8192

我在登录php文件的第3行和第26行中收到错误 第26行错误:undefined属性:login :: $ 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 :(得分:1)

希望这对您有帮助:

注意:控制器名称应仅以大写字母开头

首先像这样加载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

答案 1 :(得分:1)

您不应将与该类相同的类的函数命名。您有一个函数login(),该类名为login,该类在第3行触发警告。当PHP看到匹配的类和函数名称时,它认为该函数是该类的构造函数。但这不是您想要的,这是您在第26行收到错误的原因。

您的类中似乎没有任何理由构造函数。 (除非您确实需要加载帮助程序或其他库)

要解决您的问题,请删除index()函数,然后将login()重命名为index()。最后,在类名中使用大写字母L。所以改变这个

class login extends CI_Controller {

对此

class Login extends CI_Controller {

文件名也应使用大写首字母,即Login.php