Files
billReminder/src/Controller/AuthController.php

63 lines
1.8 KiB
PHP

<?php
namespace Hpz937\BillReminder\Controller;
use Hpz937\BillReminder\Database\SQLiteAdapter;
use Hpz937\BillReminder\User\User;
class AuthController {
protected $db;
public function __construct() {
$this->db = new SQLiteAdapter();
}
public function showLoginForm() {
require PROJECT_ROOT . '/views/auth/login.php';
}
public function login() {
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
if (empty($username) || empty($password)) {
$error = 'Username and password are required.';
require PROJECT_ROOT . '/views/auth/login.php';
return;
}
$user = new User($this->db);
if ($user->login($username, $password)) {
header('Location: /dashboard');
exit;
} else {
$error = 'Login failed. Please check your credentials.';
require PROJECT_ROOT . '/views/auth/login.php';
}
}
public function showRegistrationForm() {
require PROJECT_ROOT . '/views/auth/register.php';
}
public function register() {
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
$email = $_POST['email'] ?? '';
if (empty($username) || empty($password) || empty($email)) {
$error = 'All fields are required.';
require PROJECT_ROOT . '/views/auth/register.php';
return;
}
$user = new User($this->db);
if ($user->register($username, $password, $email)) {
header('Location: /');
exit;
} else {
$error = 'Registration failed. Please try again.';
require PROJECT_ROOT . '/views/auth/register.php';
}
}
}