Ваш код не содержит обработку HTTP-заголовков для перенаправления. PHP отправляет ответ клиенту, и браузер, получив его, просто отображает пустую страницу. Клиент не понимает, что ожидается перенаправление.
<?php
// ... (подключение к базе данных)
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
// Важно: хэширование пароля!
$hashed_password = password_hash($password, PASSWORD_DEFAULT); // или md5() или sha1()
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
// Проверка хеша пароля!
if (password_verify($password, $row["password"])) { // или strcmp($password, $row['password'])
// Успешная авторизация
session_start(); // Инициализация сессии
$_SESSION["user_id"] = $row["id"];
$_SESSION["username"] = $row["username"];
header('Location: /main.php'); // Перенаправление на главную страницу. Используйте относительные пути!
exit; // Очень важно! Останавливаем выполнение кода после перенаправления
} else {
echo "Неверный пароль."; // Или отобразить сообщение об ошибке
}
} else {
echo "Пользователь не найден."; // Или отобразить сообщение об ошибке
}
}
?>
<!DOCTYPE html>
<html>
<body>
<!--Форма авторизации -->
</body>
</html>