PHP致命错误:调用未定义的方法,即使该方法存在于主类

时间:2016-03-29 09:38:53

标签: php

我正在使用PHP并访问我的主类,但它显示此错误"

  

致命错误:调用未定义的方法MainClass :: filterUser()in   C:\ Users \ ianga_000 \ Desktop \ asd -   在第18行"

复制\ root \ MerckThesis \ ForgotPassword.php

filterUser方法在我的Main Class中。

这是我的php代码

<form action="ForgotPassword.php" method="POST">    

    User Name:<input type="text" name="txtUserName" value="" ?/><br/>
    <?php
    include_once("MainClass.php");

    $MainClass = new MainClass;

    if(isset($_POST["btnSubmit"]))
    {
        $username=$_POST['txtUserName'];

        $MainClass -> filterUser($username);

        session_start();

        $MainClass -> mailForgotPassword($_SESSION['email'],$_SESSION['password']);
    }
    ?>

    <input type="submit" name="btnSubmit" value="Submit" />

</form>

这是我的主类中的代码

<?php 


class MainClass
{

    function filterUser($username)
    {
        require 'Connection.php';
        $strSQL="SELECT * FROM users where userName='$username'";


        $rs = mysql_query($strSQL);
        $result=mysql_fetch_array($rs);

        if($result)
        {
            $_SESSION['email']=$result["email"];
            $_SESSION['password']=$result['password'];
        }

        mysql_close($con);

    }

}



?>

编辑:恰好我的MainClass搞砸了,而且函数在主类之外

1 个答案:

答案 0 :(得分:0)

我想,您的类代码应如下所示(因为您必须使用mysqli或PDO替换mysql方法):

class MainClass {

    public function filterUser($username)
    {
        require 'Connection.php';
        $strSQL="SELECT * FROM users where userName='$username'";

        $rs = mysql_query($strSQL);
        $result = mysql_fetch_array($rs);

        if($result)
        {
            $_SESSION['email']=$result["email"];
            $_SESSION['password']=$result['password'];
        }

        mysql_close($con);
    }
}

在这种情况下,您的方法(不是静态函数!)将可用,例如,测试此代码:

include_once("MainClass.php");

$MainClass = new MainClass();
$MainClass->filterUser("testuser");