致命错误:在非对象上调用成员函数AddUser()


Fatal error: Call to a member function AddUser() on a non-object

所以在网上搜索了几个小时的最小细节或这个错误的解决方案后,我仍然无法修复它

错误:

Notice: Undefined variable: Login in C:'xampp'htdocs'up'administration'adduser.php on line 3
Fatal error: Call to a member function AddUser() on a non-object in C:'xampp'htdocs'up'administration'adduser.php on line 3

这些错误来自adduser.php,其中包含

<?php
require_once('LoginClass.php');
$Login->AddUser('Test','test312');
?>

这是LoginClass.php

<?php
class Login {
//Username Variables
private $username;
private $password;
//MySQL Variables
private $Host;
private $MySQLUsername;
private $MySQLPassword;
private $Database;
private $Conn;

//Constructor
public function Login()
{
    session_start();
    $this->Host = "localhost";
    $this->MySQLUsername = "root";
    $this->MySQLPassword = "";
    $this->Database = "up";
    $this->Connection();
    unset($this->Host);
    unset($this->MySQLUsername);
    unset($this->MySQLPassword);
    unset($this->Database);
}
//**********************
//Mysql Functions
//********************** 
public function Connection()
{
    $this->Conn = @mysql_connect($this->Host,$this->MySQLUsername,$this->MySQLPassword);
    if($this->Conn)
    {
        mysql_select_db($this->Database) OR die('Could not select DB');
    }
    else
    {
        die(mysql_error());
    }  
}
public function Query($sql)
{
    $result = mysql_query($sql);
    if(!$result)
    {
        die(mysql_error());
    }
    return $result;
}
public function Disconnect()
{
    mysql_close($this->Conn);
}
//Escapes bad values for MySQL to prevent SQL injections.
public function EscapeString($badstring)
{
    if(!get_magic_quotes_gpc())
    {
        $goodstring = addslashes($badstring);
    }
    else
    {
        $goodstring = stripslashes($badstring);
    }
    $goodstring = mysql_real_escape_string($badstring);
    return $goodstring;
}
public function EncryptPassword($password)
{
  return sha1(md5($password));  
} 
//Check if the user can login
public function CheckLogin($username,$password)
{
    $this->username = $this->EscapeString($username); 
    $this->password = $this->EscapeString($this->EncryptPassword(($password)));
    $result = $this->Query("SELECT * FROM `users` WHERE `username` = '$this->username' AND `password` = '$this->password' LIMIT 1");
    //If we get one result we know the login is right.
    if(mysql_num_rows($result) == 1)
    {
        $this->username = $username;
        $_SESSION['username'] = $this->username;
        $_SESSION['authorized'] = 1; 
        header('location:Private.php');
    }
    else 
    {
        die('Invalid Login');
    }
}
//Add a user
public function AddUser($username,$password)
{
    //$username = $this->EscapeString($username);
    //$password = $this->EscapeString($this->EncryptPassword($password));
    $username = $this->$username;
    $password = $this->$this->EncryptPassword($password);
    $result = $this->Query("INSERT INTO `users` (username,password) VALUES ('$username','$password')");
}
//Takes the result of a query and puts the information into an array
public function Result_To_Array($result)
{
    $result_array = array();
    for ($i=0; $row = mysql_fetch_array($result); $i++) 
    {
        $result_array[$i] = $row;
    }
    return $result_array;
}
//Delete user
public function DeleteUser($username)
{
    $username = $this->EscapeString($username);
    $result = $this->Query("DELETE FROM `users` WHERE `username` = '$username' LIMIT 1");
}
//Checks if the user is authorized or not
public function IsAuth()
{
    if(isset($_SESSION['username']) && $_SESSION['authorized'] == 1)
    return true;
    else
    {
        die('You are not authorized to view this information');
        header('login.html');
    }    
}
//Shows user's IP
public function GetIP()
{
    return $_SERVER['REMOTE_ADDR'];
}
//Display all users
public function ShowUsers()
{
    $users = $this->Result_To_Array($this->Query("SELECT * FROM `users`"));
    foreach($users as $user)
    {
        echo $user['username']."<br />";
    } 
}
public function LogOut()
{
     session_destroy();
     header('location:login.html');
}
}
?>

您应该创建新对象Login():

require_once('LoginClass.php');
$Login = new Login();
$Login->AddUser('Test','test312');

或者像这样直接调用函数:

require_once('LoginClass.php');
Login::AddUser('Test','test312');