43 lines
1.2 KiB
PHP
43 lines
1.2 KiB
PHP
<?php
|
|
session_start();
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
error_reporting(E_ALL);
|
|
|
|
if (!isset($_POST['username'], $_POST['password'])) {
|
|
die("❌ Dados não recebidos via POST. Verifica o formulário.");
|
|
}
|
|
|
|
try {
|
|
$pdo = new PDO("mysql:host=localhost;dbname=cagalhao;charset=utf8mb4", "master", "master", [
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
]);
|
|
|
|
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
|
|
$stmt->execute([$_POST['username']]);
|
|
$user = $stmt->fetch();
|
|
|
|
if (!$user) {
|
|
echo "<script>alert('❌ Utilizador não encontrado.');window.location='login.php';</script>";
|
|
exit;
|
|
}
|
|
|
|
if (!password_verify($_POST['password'], $user['password_hash'])) {
|
|
echo "<script>alert('❌ Password incorreta.');window.location='login.php';</script>";
|
|
exit;
|
|
}
|
|
|
|
// ✅ Login correto
|
|
$_SESSION['user_id'] = $user['id'];
|
|
$_SESSION['username'] = $user['username'];
|
|
|
|
// Redireciona para o menu principal
|
|
header("Location: /api/menu.php");
|
|
exit;
|
|
|
|
} catch (Exception $e) {
|
|
echo "<p>💥 Erro na base de dados: " . htmlspecialchars($e->getMessage()) . "</p>";
|
|
}
|
|
?>
|