From 3be22ccb94ed8096460b7a6d79c6038258b979be Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 29 Oct 2025 13:38:46 +0000 Subject: [PATCH] versao 1 --- assets/css/custom.css | 25 +++ db/migrate.php | 31 +++ db/migrations/001_create_users_table.sql | 14 ++ includes/footer.php | 3 + includes/header.php | 27 +++ index.php | 231 +++++++++-------------- login.php | 82 ++++++++ logout.php | 8 + 8 files changed, 275 insertions(+), 146 deletions(-) create mode 100644 assets/css/custom.css create mode 100644 db/migrate.php create mode 100644 db/migrations/001_create_users_table.sql create mode 100644 includes/footer.php create mode 100644 includes/header.php create mode 100644 login.php create mode 100644 logout.php diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..0d57b28 --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,25 @@ +body { + font-family: 'Inter', sans-serif; + background-color: #f8f9fa; +} + +.login-container { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; +} + +.login-card { + max-width: 450px; + width: 100%; + padding: 2rem; + border: none; + border-radius: 0.5rem; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1); +} + +.navbar-brand-logo { + font-weight: 700; + color: #0D6EFD; /* Bootstrap Primary */ +} diff --git a/db/migrate.php b/db/migrate.php new file mode 100644 index 0000000..33d67ce --- /dev/null +++ b/db/migrate.php @@ -0,0 +1,31 @@ +exec($sql); + + echo "Migração '001_create_users_table.sql' executada com sucesso!\n"; + + // Criar hash de senha para o usuário de teste + $password = 'password123'; + $hash = password_hash($password, PASSWORD_DEFAULT); + + // Atualizar o hash no SQL para garantir que é compatível com a versão do PHP + $update_hash_sql = "UPDATE users SET password_hash = :hash WHERE email = 'chefe@familia.com'"; + $stmt = $pdo->prepare($update_hash_sql); + $stmt->execute(['hash' => $hash]); + echo "Hash do usuário de teste atualizado no banco de dados.\n\n"; + + echo "Usuário de teste criado:\n"; + echo "Email: chefe@familia.com\n"; + echo "Senha: " . $password . "\n"; + +} catch (PDOException $e) { + die("Erro na migração: " . $e->getMessage()); +} + diff --git a/db/migrations/001_create_users_table.sql b/db/migrations/001_create_users_table.sql new file mode 100644 index 0000000..ea71389 --- /dev/null +++ b/db/migrations/001_create_users_table.sql @@ -0,0 +1,14 @@ +CREATE TABLE IF NOT EXISTS `users` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(100) NOT NULL, + `email` VARCHAR(100) NOT NULL UNIQUE, + `password_hash` VARCHAR(255) NOT NULL, + `role` ENUM('admin', 'family_head', 'family_member', 'guest') NOT NULL DEFAULT 'family_head', + `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- Inserir um usuário de teste para que possamos fazer login +-- A senha será definida pelo script de migração +INSERT INTO users (name, email, password_hash, role) +SELECT 'Chefe da Família Teste', 'chefe@familia.com', 'placeholder', 'family_head' +WHERE NOT EXISTS (SELECT 1 FROM users WHERE email = 'chefe@familia.com'); diff --git a/includes/footer.php b/includes/footer.php new file mode 100644 index 0000000..a99c75b --- /dev/null +++ b/includes/footer.php @@ -0,0 +1,3 @@ + + + diff --git a/includes/header.php b/includes/header.php new file mode 100644 index 0000000..727d178 --- /dev/null +++ b/includes/header.php @@ -0,0 +1,27 @@ + + + + + + + Galilei-finance-v1 + + + + + + + + + + + + + + + + diff --git a/index.php b/index.php index 7205f3d..a2014e7 100644 --- a/index.php +++ b/index.php @@ -1,150 +1,89 @@ prepare("SELECT id, name, email, role FROM users WHERE id = :id"); + $stmt->execute(['id' => $_SESSION['user_id']]); + $user = $stmt->fetch(PDO::FETCH_ASSOC); +} catch (PDOException $e) { + // Em caso de erro, desloga o usuário para segurança + header('Location: logout.php'); + exit; +} + +if (!$user) { + // Se o usuário não for encontrado no DB, desloga + header('Location: logout.php'); + exit; +} + + +include __DIR__ . '/includes/header.php'; ?> - - - - - - New Style - - - - - - - - - - - - - - - - - - - - - -
-
-

Analyzing your requirements and generating your website…

-
- Loading… -
-

AI is collecting your requirements and applying the first changes.

-

This page will update automatically as the plan is implemented.

-

Runtime: PHP — UTC

+ +
- - - + + +
+
+
+

Bem-vindo(a) ao seu Painel Financeiro

+

Este é o seu centro de controle. Em breve, você poderá adicionar despesas, criar orçamentos e visualizar relatórios detalhados aqui.

+ +
+
+ +
+
+
+

Orçamentos

+

Acompanhe seus orçamentos mensais e veja onde seu dinheiro está indo. (Funcionalidade futura)

+ +
+
+
+
+

Metas

+

Defina e acompanhe suas metas de poupança para alcançar seus sonhos. (Funcionalidade futura)

+ +
+
+
+
+ + \ No newline at end of file diff --git a/login.php b/login.php new file mode 100644 index 0000000..37a4813 --- /dev/null +++ b/login.php @@ -0,0 +1,82 @@ +prepare("SELECT id, password_hash FROM users WHERE email = :email"); + $stmt->execute(['email' => $email]); + $user = $stmt->fetch(PDO::FETCH_ASSOC); + + if ($user && password_verify($password, $user['password_hash'])) { + // Login bem-sucedido + $_SESSION['user_id'] = $user['id']; + header('Location: index.php'); + exit; + } else { + // Credenciais inválidas + $error_message = 'E-mail ou senha inválidos.'; + } + } catch (PDOException $e) { + // Idealmente, logar o erro em vez de exibir + $error_message = 'Erro no banco de dados. Tente novamente mais tarde.'; + } + } +} + +include __DIR__ . '/includes/header.php'; +?> + +
+ +
+ + diff --git a/logout.php b/logout.php new file mode 100644 index 0000000..150bc0f --- /dev/null +++ b/logout.php @@ -0,0 +1,8 @@ +