🤩 File Manager - Mr.X
PHP:
8.3.33
Server:
Apache
OS:
Linux 5.14.0-611.49.1.el9_7.x86_64
User:
websparkit
Navigate
Upload:
Upload
New File
New Folder
Editing:register.php
<?php require_once __DIR__ . '/../includes/config.php'; require_once __DIR__ . '/../includes/db.php'; require_once __DIR__ . '/../includes/functions.php'; $page = 'register'; $page_title = 'Create Account'; if (is_logged_in()) { header('Location: ' . SITE_URL . 'pages/account.php'); exit; } if ($_SERVER['REQUEST_METHOD'] == 'POST' && verify_csrf($_POST[CSRF_TOKEN_NAME] ?? '')) { $first_name = trim($_POST['first_name']); $last_name = trim($_POST['last_name']); $email = trim($_POST['email']); $phone = trim($_POST['phone']); $password = $_POST['password']; $confirm_password = $_POST['confirm_password']; $errors = []; if (empty($first_name)) $errors[] = 'First name is required'; if (empty($last_name)) $errors[] = 'Last name is required'; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = 'Valid email is required'; if (strlen($password) < 6) $errors[] = 'Password must be at least 6 characters'; if ($password !== $confirm_password) $errors[] = 'Passwords do not match'; $stmt = $db->prepare("SELECT id FROM users WHERE email = ?"); $stmt->execute([$email]); if ($stmt->fetch()) $errors[] = 'Email already registered'; if (empty($errors)) { try { $hashed = password_hash($password, PASSWORD_DEFAULT); $stmt = $db->prepare("INSERT INTO users (first_name, last_name, email, phone, password) VALUES (?, ?, ?, ?, ?)"); $stmt->execute([$first_name, $last_name, $email, $phone, $hashed]); $_SESSION['user_id'] = $db->lastInsertId(); $_SESSION['user_email'] = $email; $_SESSION['user_name'] = $first_name . ' ' . $last_name; set_flash('success', 'Welcome to VELORA, ' . $first_name . '!'); header('Location: ' . SITE_URL . 'pages/account.php'); exit; } catch (Exception $e) { $errors[] = 'Registration failed. Please try again.'; } } if (!empty($errors)) { set_flash('error', implode('<br>', $errors)); } } require_once '../includes/header.php'; require_once '../includes/navbar.php'; ?> <main> <section class="auth-section" style="padding: 80px 0; min-height: 70vh;"> <div class="container"> <div class="row justify-content-center"> <div class="col-lg-5 col-md-7"> <div class="auth-card" style="background: var(--white); border-radius: 20px; padding: 50px 40px; box-shadow: var(--shadow-md);"> <div class="text-center mb-4"> <h2 style="font-size: 2rem; margin-bottom: 10px;">Create Account</h2> <p class="text-muted">Join VELORA for exclusive benefits</p> </div> <?php display_flash(); ?> <form method="POST" class="needs-validation" novalidate> <?= csrf_field() ?> <div class="row g-3"> <div class="col-md-6"> <label class="form-label">First Name *</label> <input type="text" name="first_name" class="form-control" required style="border-radius: 25px; padding: 10px 20px;" value="<?= htmlspecialchars($_POST['first_name'] ?? '') ?>"> <div class="invalid-feedback">Required</div> </div> <div class="col-md-6"> <label class="form-label">Last Name *</label> <input type="text" name="last_name" class="form-control" required style="border-radius: 25px; padding: 10px 20px;" value="<?= htmlspecialchars($_POST['last_name'] ?? '') ?>"> <div class="invalid-feedback">Required</div> </div> <div class="col-md-12"> <label class="form-label">Email Address *</label> <input type="email" name="email" class="form-control" required style="border-radius: 25px; padding: 10px 20px;" value="<?= htmlspecialchars($_POST['email'] ?? '') ?>"> <div class="invalid-feedback">Valid email required</div> </div> <div class="col-md-12"> <label class="form-label">Phone Number</label> <input type="tel" name="phone" class="form-control" style="border-radius: 25px; padding: 10px 20px;" value="<?= htmlspecialchars($_POST['phone'] ?? '') ?>"> </div> <div class="col-md-12"> <label class="form-label">Password *</label> <input type="password" name="password" class="form-control" required minlength="6" style="border-radius: 25px; padding: 10px 20px;"> <div class="invalid-feedback">At least 6 characters</div> </div> <div class="col-md-12"> <label class="form-label">Confirm Password *</label> <input type="password" name="confirm_password" class="form-control" required style="border-radius: 25px; padding: 10px 20px;"> <div class="invalid-feedback">Passwords must match</div> </div> <div class="col-md-12"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="terms" required> <label class="form-check-label" for="terms"> I agree to the <a href="<?= SITE_URL ?>pages/terms-conditions.php" style="color: var(--primary-rose-gold);">Terms & Conditions</a> </label> </div> </div> <div class="col-md-12"> <button type="submit" class="btn-luxury w-100" style="justify-content: center;"> <i class="fas fa-user-plus"></i> Create Account </button> </div> </div> </form> <div class="text-center mt-4"> <p style="margin-bottom: 0; color: var(--gray-600);"> Already have an account? <a href="<?= SITE_URL ?>pages/login.php" style="color: var(--primary-rose-gold); font-weight: 600;">Sign In</a> </p> </div> </div> </div> </div> </div> </section> </main> <?php require_once '../includes/footer.php'; ?>
Save Changes
Cancel
Create New File
Create New Folder