繁体   English   中英

MySQLi和OOP PHP错误

[英]MySQLi and OOP PHP Error

Parse error: syntax error, unexpected '$this' (T_VARIABLE), expecting function (T_FUNCTION) in C:\xampp\htdocs\Login-OOP\classes\class.user.php on line 28

上面是我得到的错误,我的class.user.php是:

<?php
class Users {
    public $db;
    public function __construct() {
        $this->db = new mysqli("localhost", "root", "<removed for privacy>", "oop");
    }

    public function login($username, $password) {
        $stmt = $this->db->prepare("SELECT username, password FROM users WHERE username=$username AND password=$password");
        $stmt->bind_param('ss', $username, $password);
        $stmt->execute();
        $stmt->bind_result($username, $password);
        $stmt->store_result();
        if($stmt->num_rows == 1) {
            while($stmt->fetch()) {
                $_SESSION['username'] == $username;
                header("Location: home.php");
                exit;
            }
        }
        else {
            header("Location: index.php?e=invalidlogin");
            exit;
        }
        $stmt->close();
        $stmt->free_result();
    }
    $this->db->close();
}
?>

那么,有什么可以做的吗? 我正在尝试访问我的index.php,因此,如果您需要我的index.php,则为:

<?php
    session_start();

    include "classes/class.user.php";

    if(isset($_REQUEST['submit'])) {
        extract($_REQUEST);
        $login = $users->login($username, $password);
    }
?>
<!DOCTYPE html>
<head>
    <title>Login</title>
</head>
<body>
    <form method="POST" action="" name="submit">
        <input type="text" name="username">
        <input type="password" name="password">
        <input type="submit" name="submit" value="submit">
    </form>
</body>
</html>

我希望此错误有解决方案,我认为这是一个奇怪的错误。 您能否建议导致此错误的原因? 另外,如果我以不安全的方式使用任何代码,请让我知道以改善我的习惯。

移动此$this->db->close(); 在您的public function login($username, $password)public function login($username, $password)

那是...

$stmt->free_result();
           }
           $this->db->close();
           }
         ?>

           $stmt->free_result();
           $this->db->close();
    }
}
?>

您在这里犯了错误。 $this->db->close();

尝试在destructor关闭数据库连接

public function __destruct() 
{
    $this->db->close();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM