Создал класс для Логина на сайте, но остановился так как появилась ошибка
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in D:\openserver\OSPanel\domains\localhost\safemysql.php on line 560
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in D:\openserver\OSPanel\domains\localhost\safemysql.php on line 560
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in D:\openserver\OSPanel\domains\localhost\safemysql.php on line 466
Мой код -
<?php
require_once "../../safemysql.php";
class Login extends SafeMySql {
private $username;
private $password;
function __construct() {
$this->username=$_POST['username'];
$this->password=$_POST['password'];
}
public function check(){
if($this->username=="" || $this->password==""){
echo "Password or Username is empty.";
exit();
}else {
$this->getAll("SELECT * FROM users WHERE username=?s AND password=?s",$this->username,$this->password);
}
}
}
if(isset($_POST['reg'])){
header('Location: ../register.php');
}else{
$login = new Login();
$login->check();
}
?>
Сам класс - https://github.com/colshrapnel/safemysql/blob/master/safemysql.class.php
Вопрос - С чей стороны ошибка? С моей или со стороны класса?
Вы в своем классе переопределяете конструктор родителя, в котором устанавливается соединение с БД. Поэтому соединение в Вашем классе не определено Стоит сделать
$defaults, прописав в него параметры соединения с базой (этот вариант похуже)PS. логин и пароль тоже лучше передавать в конструктор и перед этим "очищать" от sql инъекций
Продвижение своими сайтами как стратегия роста и независимости