www/api/validar.php

43 lines
1.2 KiB
PHP
Raw Normal View History

2026-05-11 22:31:48 +00:00
<?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
2026-06-27 21:44:44 +00:00
header("Location: /painel.php");
2026-05-11 22:31:48 +00:00
exit;
} catch (Exception $e) {
echo "<p>💥 Erro na base de dados: " . htmlspecialchars($e->getMessage()) . "</p>";
}
?>