47 lines
1.3 KiB
PHP
47 lines
1.3 KiB
PHP
<?php
|
|
require_once __DIR__ . '/db/config.php';
|
|
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
session_start();
|
|
}
|
|
|
|
// Proteger a página: redirecionar para o login se não estiver logado
|
|
if (!isset($_SESSION['user_id'])) {
|
|
header('Location: login.php');
|
|
exit;
|
|
}
|
|
|
|
$expense_id = $_GET['id'] ?? null;
|
|
$user_id = $_SESSION['user_id'];
|
|
|
|
if (!$expense_id) {
|
|
// Se não houver ID, redireciona de volta
|
|
header('Location: expenses.php');
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$pdo = db();
|
|
// A cláusula WHERE garante que um usuário só pode deletar suas próprias despesas
|
|
$sql = "DELETE FROM expenses WHERE id = :id AND user_id = :user_id";
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute([
|
|
'id' => $expense_id,
|
|
'user_id' => $user_id
|
|
]);
|
|
|
|
// Opcional: verificar se alguma linha foi afetada para dar um feedback mais preciso
|
|
if ($stmt->rowCount() > 0) {
|
|
$_SESSION['success_message'] = 'Despesa excluída com sucesso!';
|
|
} else {
|
|
$_SESSION['error_message'] = 'Não foi possível excluir a despesa. Ela não foi encontrada ou não pertence a você.';
|
|
}
|
|
|
|
} catch (PDOException $e) {
|
|
$_SESSION['error_message'] = 'Erro ao excluir a despesa: ' . $e->getMessage();
|
|
}
|
|
|
|
// Redirecionar de volta para a página de despesas
|
|
header('Location: expenses.php');
|
|
exit;
|