当前位置: 首页 > 知识库问答 >
问题:

致命错误:未捕获错误:调用未定义的方法UserController

袁何平
2023-03-14

我用这些类创建了一个登录名,但给了我一个错误

(!)致命错误:未捕获的错误:调用未定义的方法UserController::c在第17行的C:\xampp\htdocs\progetto个性\控制器\User Controller.php

( ! ) 错误:调用C:\xampp\htdocs\progetOpersonale\controllers\User Controller中未定义的方法UserController::checkLogin()。php第17行调用堆栈#时间内存函数位置1 0.0010 360312{main}()。。。\登录。php:0 2 0.0030 384208用户控制器-

这两类是:

class UserController
{
    public $username = '';
    private $logged   = false;
    private $usermodel = '';

    public function __construct()
    {   $this->usermodel = new UserModel();
        session_start();


        if ($_SERVER['REQUEST_METHOD']=='POST' && isset($_GET['action'])&& $_GET['action']== 'login' ){
            $username = (isset($_POST['username']))? $_POST['username'] :false ;
            $password = (isset($_POST['password']))? $_POST['password'] :false ;
            var_dump($password,$username);
            if ($username !=false && $password !=false && $this->usermodel->checkLogin( $username, $password )){

                $this->username =$username ;
                $this->logged = true ;

                $_SESSION['username']= $username ;
                $_SESSION['logged']= true ;
                $_SESSION[ 'message' ]  = 'Login effettuato correttamente';
            }else{
                $_SESSION[ 'message' ]  = 'Errore con il login; riprovare!';
            }
        }
        elseif (isset($_GET['action'])&& $_GET['action']== 'logout'){
            unset($_SESSION['username']);
            unset($_SESSION['logged']);
            $_SESSION[ 'message' ] = 'Logout effettuato correttamente';
        }
        elseif (isset($_SESSION['username'])&& isset($_SESSION['logged'])){

            $this->username = $_SESSION['username'] ;
            $this->logged = true ;
        }
        $this->redirectToProperArea();
    }
class UserModel
{
    private $dbconn = null ;

    public function __construct()
    {
        $this->dbconn = new DbConnector();
    }


    public function checkLogin($username, $password ){

        $newpassword =password_hash($password, PASSWORD_DEFAULT);

        $res=$this->dbconn->select(
            array('id_utente'),
            'iscritti',
            'nome_utente='.$username.'&& password='.$newpassword

        );
        $num_rows=$this->dbconn->num_rows($res);
        if ($num_rows ==1){
            return true ;
        }else {
            return false ;
        }
    }
}  

共有1个答案

秦英发
2023-03-14

在第17行,您正在调用UserController::checkLogin(),但是User Controller类没有方法checkLogin。该函数属于UserModel类,因此必须调用UserModel::checkLogin()

 类似资料:
  • 致命错误:未捕获错误:调用未定义的方法mysqli::execute()在C:\xampp\htdocs\search\index.php:58堆栈跟踪:#0{main}抛出在第58行的C:\xampp\htdocs\search\index.php 这是第58行 我试图创建一个简单的实时搜索。

  • 我试图用XAMPP和sql Server做一个简单的连接。但是当我试图输入数据或连接到数据库时,我会遇到这个错误。错误是什么?我的项目急需它。我不知道为什么php第9行是错误。 致命错误:未捕获错误:调用C:\xampp\htdocs\last1\new\register.php:19中的未定义方法mysqli::error() 请帮帮我:(谢谢你们;*

  • 我的代码怎么了 帕西恩视图- 控制器- 注意:未定义的索引:psn在C:\xampp\htdocs\hamil\app\view\pasien\index.php行202 警告:在第202行的C:\xampp\htdocs\bunil\app\view\pasien\index.php中为Foreach()提供的参数无效 致命错误:未捕获错误:调用C:\xampp\htdocs\bumil\app

  • 问题内容: 我试图与XAMPP和MySQL服务器建立简单连接,但是每当我尝试输入数据或连接到数据库时,都会出现此错误。 致命错误:未捕获错误:在C:\ xampp \ htdocs \ register.php:22中调用未定义函数mysql_connect() 堆栈跟踪:#0 {main}在第22行的C:\ xampp \ htdocs \ register.php中抛出 第22行的示例: 问题

  • 我在尝试访问http://localhost/phpmyadmin/时收到以下错误: 在这里回顾了类似的主题后,我做了以下工作: null 我运行的是Windows10,Apache2.4-64bits、PHP7-64bits和mysqlserver5.7。Apache运行良好,PHP也运行良好(访问info.PHP无需担心) 谢了。

  • 我正在按照一个在线教程来创建一个迷你购物车,一切都很顺利,但现在我得到了这个错误: 致命错误:未捕获错误:调用未定义函数mysql_query()