Пытаюсь сделать авторизацию на чистом PHP с паттерном MVC. Почему-то модель возвращает bool(false)
, вместо массива с данными пользователя при входе в личный кабинет. Используется PDO-подключение. С подключением всё впорядке, SQL-запрос проверил, в PhpMyAdmin он отрабатывает. Регистрация работает отлично, а вот авторизация никак. В базе данных уже есть данные, поэтому пустой массив отдавать не должен.
Controller
class Account extends Controller {
function __construct() {
parent::__construct(); // подключение к View
}
public function index() {
if ($_SESSION['user']) { // аутентификация
$arg = ['Аккаунт', 'Аккаунт - это титл'];
$this->view->render('account/account', $arg);
} else { // аутентификация не пройдена
$arg = ['Авторизация', 'Авторизация - это титл'];
$this->view->render('auth/login', $arg); // отдаём страницу авторизации
}
}
public function login() { // функция авторизации
$email = $_POST['email']; // принимаем POST
$pass = $_POST['password']; // принимаем POST
$user = $this->model->getUser($email, $pass);
var_dump($_POST)."</br>"; // здесь выводит массив, всё норм
var_dump($user); // здесь возвращает bool(false), а должен массив с данными пользователя из базы
if (!empty($user)) { // если данные пользователя есть
$_SESSION['user'] = [ // создаём Юзера
'username' => $user['name'],
'id' => $user['id'],
'email' => $user['email'],
];
$arg = ['Личный кабинет', 'Аккаунт - это титл']; // аргументы в функцию
$this->view->render('account/account', $arg); // отдаём страницу авторизации
} else { // если данных пользователя нет
$_SESSION['message'] = 'Email или пароль не верные!';
$arg = ['Авторизация', 'Авторизация - это титл'];
$this->view->render('auth/login', $arg); // отдаём страницу авторизации
}
}
public function logout() { // функция дезавторизации
$_SESSION['user'] = [];
header('Location: '.URL.'main');
}
Model
<?php
class Account_model extends Model {
function __construct() {
parent::__construct(); // подключаем БД через родительский конструктор
}
public function getUser($email, $pass) {
$sql = "SELECT * FROM `users` WHERE `email` = '$email' AND `password` = '$pass'";
$query = $this->db->query($sql); // отправляем запрос через PDO
if (!empty($query)) { // если запрос вернул данные
return $query->fetch(); // получаем эти данные и возвращаем их в Controller
} else { // если запрос не вернул данные
return 'Ошибка в Модели (База данных)';
}
}
}
View (В который зайти не получается при верно введённых данных)
<?php
session_start();
?>
<main>
<div class="main-content">
<h1>Добро пожаловать, <?=$_SESSION['user']['username'];?></h1>
<p>Вы успешно авторизовались!</p>
<a href="<?=URL.'account/logout';?>">Выйти</a>
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите, можно ли, например, при помощи curl'а выполнить запрос в стиле формы с последующей переадресацией ? Ну те если есть форма, то там...
Есть строка 167_319_838_852 строка динамическая может быть такой 167_319_8388 и такой 167_3195
Передаю ошибочный маркер в параметры подготовленного запроса, но в итоге не выбрасывается никакое исключение, возвращает как успешный результат,...
Необходимо из шаблона письма удалить один атрибут товара из двух, те