Накосячено здесь
везде. В каждой строчке. Но самая ерунда написана в комментариях.
> я всегда делаю, чтобы сначала работало, а потом делаю защиту и "секьюрность".
Придется избавляться от этой дурацкой привычки. Во-первых, это дорога в никуда. С такими идеями твой код всегда будет кривым. Во-вторых, это тупо двойная работа - сначала говнокодить, а потом переписывать набело. И в-третьих, нормальный код
проще и удобнее говнокода. Поэтому если не умеешь работать с ПДО - надо учиться. СНАЧАЛА учиться, а потом пытаться что-то писать.
Файл соединения:
<?php
$serverName = "localhost";
$userName = "root";
$password = "";
$dataBase = "matrix";
$pdo = new PDO ("mysql:host=$serverName; dbname=$dataBase", $userName, $password);
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
"Движок" берем отсюда,
https://phpdelusions.net/pdo_examples/password_hash$stmt = $pdo->prepare("SELECT login, password, otdel FROM `user_s` WHERE login=?");
$stmt->execute([$_POST['login']]);
$user = $stmt->fetch();
if ($user && password_verify($_POST['password'], $user['password']))
{
echo "valid!";
} else {
echo "invalid";
}
Не забыв предварительно хэшировать все пароли перед записью в БД через password_hash.
А ответ на вопрос, почему у тебя не работает сейчас, можешь прочесть в документации по exec(). Там написано.