Language updates. New upload form. new classes.
This commit is contained in:
parent
4c2857b445
commit
8f3061ab99
62 changed files with 3107 additions and 1883 deletions
58
login.php
58
login.php
|
@ -1,15 +1,16 @@
|
|||
<?php
|
||||
require_once 'includes/globals.php';
|
||||
|
||||
if (isset($_SESSION['user'])) {
|
||||
header("Location: /profile");
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once 'vendor/autoload.php';
|
||||
|
||||
use DJMixHosting\Database;
|
||||
use DJMixHosting\User;
|
||||
use DJMixHosting\SessionManager;
|
||||
|
||||
// If a user is already logged in, redirect to profile.
|
||||
if (SessionManager::getUser()) {
|
||||
header("Location: /profile");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Generate a CSRF token if one is not set
|
||||
if (!isset($_SESSION['csrf_token'])) {
|
||||
|
@ -19,9 +20,7 @@ if (!isset($_SESSION['csrf_token'])) {
|
|||
$title = $locale['home'];
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
|
||||
if (isset($_POST['email'], $_POST['password'], $_POST['csrf_token'])) {
|
||||
|
||||
// Check the CSRF token
|
||||
if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
|
||||
$_SESSION['error'] = $locale['message'] . ": Invalid form submission. Please try again.";
|
||||
|
@ -32,32 +31,42 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|||
$db = new Database($config);
|
||||
$user = new User($db);
|
||||
$result = $user->login($email, $password);
|
||||
if ($result === true) {
|
||||
// Successful login, redirect to profile page
|
||||
|
||||
// If login() returns an array, the login was successful.
|
||||
if (is_array($result)) {
|
||||
SessionManager::setUser([
|
||||
'id' => $result['id'],
|
||||
'email' => $result['email'],
|
||||
'username' => $result['username'],
|
||||
'firstName' => $result['firstName'],
|
||||
'lastName' => $result['lastName'],
|
||||
'role' => $result['isAdmin'] ? 'admin' : 'user'
|
||||
]);
|
||||
header("Location: profile.php");
|
||||
exit;
|
||||
} else {
|
||||
// Set error message from login method (includes lockout messages)
|
||||
// Login failed; $result contains an error message.
|
||||
$_SESSION['error'] = $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
require_once 'includes/header.php';
|
||||
if (isset($_SESSION['error'])) {
|
||||
echo '<div class="alert alert-danger alert-dismissible fade show mb-4" role="alert">
|
||||
' . htmlspecialchars($_SESSION['error']) . '
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>';
|
||||
unset($_SESSION['error']);
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<section class="login-section py-5">
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-5">
|
||||
<?php
|
||||
if (isset($_SESSION['error'])) {
|
||||
echo '<div class="alert alert-danger alert-dismissible fade show mb-4" role="alert">
|
||||
' . htmlspecialchars($_SESSION['error']) . '
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>';
|
||||
unset($_SESSION['error']);
|
||||
}
|
||||
?>
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4">
|
||||
<h3 class="text-center mb-4">Login</h3>
|
||||
|
@ -97,30 +106,21 @@ require_once 'includes/header.php';
|
|||
</section>
|
||||
|
||||
<style>
|
||||
.login-section {
|
||||
min-height: calc(100vh - 200px); /* Adjust based on your header/footer height */
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);
|
||||
}
|
||||
|
||||
#togglePassword:hover {
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
|
||||
#togglePassword:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.input-group .form-control:focus {
|
||||
border-right: 1px solid #86b7fe;
|
||||
}
|
||||
|
||||
.input-group .btn {
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue