Added full user authentication system: register/login with validation, bcrypt, reCAPTCHA integration, session handling, and new landing page with animated form switcher.

This commit is contained in:
Dr3amFury
2025-07-29 19:22:49 +02:00
parent a2af4c3d1a
commit 08a5cead74
6 changed files with 159 additions and 57 deletions

View File

@@ -1,28 +1,83 @@
<?php
session_start();
if (isset($_SESSION['user_id'])) {
// Already logged in, redirect to email generator
header("Location: /home.php");
exit();
}
include($_SERVER['DOCUMENT_ROOT'] . '/inc/php/header.php');
<?php
session_start();
require_once($_SERVER['DOCUMENT_ROOT'] . '/db.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/config.php');
include($_SERVER['DOCUMENT_ROOT'] . '/inc/php/header.php');
?>
<body>
<div class="container" style="text-align: center;">
<h1>Welcome to AI Email Generator</h1>
<p style="margin-bottom: 20px;">Craft professional emails in seconds. Please login or register to get started.</p>
<div style="display: flex; justify-content: center; gap: 20px;">
<a href="/inc/php/login.php"><button style="padding: 10px 20px;">Login</button></a>
<a href="/inc/php/register.php"><button style="padding: 10px 20px;">Register</button></a>
</div>
<div style="margin-top: 30px;">
<button id="darkModeBtn">Toggle Dark Mode</button>
</div>
<link rel="stylesheet" href="/inc/css/style.css">
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<body>
<div class="container" id="auth-container">
<h1>AI Email Generator</h1>
<!-- Login Form -->
<div id="login-box" class="auth-box">
<form action="/inc/php/login.php" method="POST">
<h2>Login</h2>
<?php if (isset($_SESSION['login_error'])): ?>
<p class="error"><?= $_SESSION['login_error']; unset($_SESSION['login_error']); ?></p>
<?php endif; ?>
<label for="login_email">Email or Username</label>
<input type="text" name="login_email" required>
<label for="login_password">Password</label>
<input type="password" name="login_password" required>
<div class="g-recaptcha" data-sitekey="your_site_key"></div>
<button type="submit">Login</button>
<p>Don't have an account? <a href="#" onclick="showRegister()">Register here</a></p>
</form>
</div>
<script src="/inc/js/theme.js"></script>
<!-- Register Form -->
<div id="register-box" class="auth-box hidden">
<form action="/inc/php/register.php" method="POST">
<h2>Register</h2>
<?php if (isset($_SESSION['register_error'])): ?>
<p class="error"><?= $_SESSION['register_error']; unset($_SESSION['register_error']); ?></p>
<?php endif; ?>
<label for="username">Username</label>
<input type="text" name="username" required>
<label for="email">Email</label>
<input type="email" name="email" required>
<label for="confirm_email">Confirm Email</label>
<input type="email" name="confirm_email" required>
<label for="password">Password</label>
<input type="password" name="password" required>
<label for="age">Age</label>
<input type="number" name="age" min="16" required>
<div class="g-recaptcha" data-sitekey="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"></div>
<button type="submit">Register</button>
<p>Already have an account? <a href="#" onclick="showLogin()">Login here</a></p>
</form>
</div>
</div>
<script>
function showRegister() {
document.getElementById("login-box").classList.add("hidden");
document.getElementById("register-box").classList.remove("hidden");
}
function showLogin() {
document.getElementById("register-box").classList.add("hidden");
document.getElementById("login-box").classList.remove("hidden");
}
</script>
<?php include($_SERVER['DOCUMENT_ROOT'] . '/inc/php/footer.php'); ?>