具有数据库连接类的登录系统don';t登录.对于无效登录,返回else错误


Login System with a DB Connection Class don't login. Return with else error for invalid login

我是DB类的新手。我试图让我的旧登录系统使用这个DB类,但它会返回我的else,因为登录错误无效,就像DB中没有这样的电子邮件和密码一样。但是有。

连接类别:

class Conexao
{
private $link;
public function __construct($host = null, $username = null, $password = null, $dbName = null)
{
$this->link = mysqli_init();
$this->link->real_connect($host, $username, $password, $dbName) or die("Failed to connect");
}
public function __destruct()
{
$this->link->close();
}
public function Query($sql)
{
return $this->link->query($sql);
}

登录页面:

<?php
include('dbConnect.php');
session_start();
$conexao = new Conexao("localhost", "root", "XXXXX", "festas");
if(isset($_POST['submit'])) {
$email = mysqli_real_escape_string($conexao,$_POST['email']);
$pass = mysqli_real_escape_string($conexao,$_POST['senha']);
$sel_user = $conexao->Query("SELECT * from contas where email='$email' AND senha='$pass'");
$check_user = mysqli_num_rows($sel_user);
$row = mysqli_fetch_assoc($sel_user);
if($check_user>0){
$_SESSION['user_email']=$email;
header('Location: ../adminpage.php');
mysqli_free_result($result);
} else {
header('Location: ../admin.php?erroLogin=1');
}
}
?>

它总是以"else"头返回('Location:../admin.php?erroLogin=1')。我认为这可能是因为"$check_user=mysqli_num_rows($sel_user);",但我试图修复,但没有成功。还尝试了"$conexao->num_rows($sel_user).

我解决了它。以下是我所做的:

在DB类php:中

public function Escape($sql)
{
    return $this->link->real_escape_string($sql);
}

然后在登录php:

$email = $conexao->Escape($_POST['email']);

谢谢!