/home/awneajlw/.trash/register.php
<?php
/**
* Register Page - Email Only Signup
* This page handles the first step of registration with email only
* Redirects to OTP verification after successful email submission
*/
// Start session if not already started
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
// Include required files
require_once 'config/database.php'; // Database connection configuration
require_once 'includes/auth.php'; // Authentication functions
$error = '';
$success = '';
/**
* Email Registration Handler
* Process email submission and redirect to OTP verification
*/
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$email = sanitizeInput(trim($_POST['email'] ?? ''));
// Validate email
if (empty($email)) {
$error = 'Please enter your email address.';
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error = 'Please enter a valid email address.';
} else {
try {
$database = new Database();
$db = $database->getConnection();
// Check if email already exists
$check_query = "SELECT id FROM users WHERE email = ?";
$check_stmt = $db->prepare($check_query);
$check_stmt->execute([$email]);
if ($check_stmt->rowCount() > 0) {
$error = 'Email already exists. Please use a different email or sign in.';
} else {
// Store email in session for OTP verification
$_SESSION['registration_email'] = $email;
// Generate and store OTP (for demo, using 123456)
$_SESSION['registration_otp'] = '123456';
$_SESSION['otp_generated_time'] = time();
// Redirect to OTP verification
header('Location: verify-otp.php');
exit();
}
} catch (Exception $e) {
$error = 'Registration failed. Please try again.';
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Register - OPTI SLIP</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', sans-serif;
background: linear-gradient(135deg, #1e40af 0%, #7c3aed 100%);
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.register-container {
background: white;
border-radius: 20px;
box-shadow: 0 20px 40px rgba(0,0,0,0.1);
overflow: hidden;
width: 100%;
max-width: 900px;
}
.register-header {
background: linear-gradient(135deg, #10b981 0%, #059669 100%);
color: white;
padding: 30px;
text-align: center;
}
.register-header h1 {
font-size: 28px;
font-weight: 600;
margin-bottom: 10px;
}
.register-header p {
opacity: 0.9;
font-size: 14px;
}
.register-content {
padding: 40px;
}
.form-label {
font-weight: 600;
color: #374151;
margin-bottom: 8px;
}
.form-control {
border: 2px solid #e5e7eb;
border-radius: 10px;
padding: 12px 15px;
font-size: 14px;
transition: all 0.3s ease;
}
.form-control:focus {
border-color: #10b981;
box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
}
.btn-primary {
background: linear-gradient(135deg, #10b981 0%, #059669 100%);
border: none;
border-radius: 10px;
padding: 12px 30px;
font-weight: 600;
transition: all 0.3s ease;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(16, 185, 129, 0.3);
}
.alert {
border-radius: 10px;
border: none;
padding: 15px;
margin-bottom: 20px;
}
.alert-danger {
background: #fee2e2;
color: #991b1b;
}
.alert-success {
background: #d1fae5;
color: #065f46;
}
.input-group-text {
background: #f9fafb;
border: 2px solid #e5e7eb;
border-right: none;
color: #6b7280;
}
.input-group .form-control {
border-left: none;
}
.input-group .form-control:focus {
border-left: none;
}
.input-group .form-control:focus + .input-group-text {
border-color: #10b981;
}
</style>
</head>
<body>
<div class="register-container">
<div class="register-header">
<h1><i class="fas fa-user-plus me-2"></i>Create Account</h1>
<p>Join OPTI SLIP to manage your eye clinic orders</p>
</div>
<div class="register-content">
<?php if ($error): ?>
<div class="alert alert-danger">
<i class="fas fa-exclamation-triangle me-2"></i>
<?php echo htmlspecialchars($error); ?>
</div>
<?php endif; ?>
<?php if ($success): ?>
<div class="alert alert-success">
<i class="fas fa-check-circle me-2"></i>
<?php echo htmlspecialchars($success); ?>
</div>
<?php endif; ?>
<form method="POST">
<div class="mb-4">
<label for="email" class="form-label">Email Address</label>
<div class="input-group">
<span class="input-group-text"><i class="fas fa-envelope"></i></span>
<input type="email" class="form-control" id="email" name="email" required
placeholder="Enter your email address"
value="<?php echo isset($_POST['email']) ? htmlspecialchars($_POST['email']) : ''; ?>">
</div>
<small class="form-text text-muted mt-2">We'll send you an OTP to verify your email address</small>
</div>
<button type="submit" class="btn btn-primary w-100 mb-3">
<i class="fas fa-paper-plane me-2"></i>Send OTP
</button>
</form>
<div class="text-center">
<p class="text-muted">Already have an account?
<a href="signin.php" class="text-primary text-decoration-none fw-semibold">Sign In</a>
</p>
<a href="index.php" class="text-muted text-decoration-none">
<i class="fas fa-arrow-left me-1"></i>Back to Home
</a>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>