与类相同名称的方法在将来的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"));
}
}
}
} ?>
答案 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