'', 'email' => '', 'first_name' => '', 'last_name' => '', 'university_id' => '', 'phone' => '', 'role' => 'customer' // Default role ]; if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Sanitize and validate input $fields['username'] = trim($_POST['username']); $fields['email'] = trim($_POST['email']); $fields['first_name'] = trim($_POST['first_name']); $fields['last_name'] = trim($_POST['last_name']); $fields['university_id'] = trim($_POST['university_id']); $fields['phone'] = trim($_POST['phone']); $fields['role'] = $_POST['role'] === 'owner' ? 'owner' : 'customer'; $password = trim($_POST['password']); $confirm_password = trim($_POST['confirm_password']); // Validate inputs if (empty($fields['username'])) { $errors['username'] = 'Username is required.'; } elseif (!preg_match('/^[a-zA-Z0-9_]{4,20}$/', $fields['username'])) { $errors['username'] = 'Username must be 4-20 characters (letters, numbers, underscores).'; } if (empty($fields['email'])) { $errors['email'] = 'Email is required.'; } elseif (!filter_var($fields['email'], FILTER_VALIDATE_EMAIL)) { $errors['email'] = 'Please enter a valid email address.'; } if (empty($fields['first_name'])) { $errors['first_name'] = 'First name is required.'; } if (empty($fields['last_name'])) { $errors['last_name'] = 'Last name is required.'; } if (empty($fields['university_id'])) { $errors['university_id'] = 'University ID is required.'; } if (empty($password)) { $errors['password'] = 'Password is required.'; } elseif (strlen($password) < 8) { $errors['password'] = 'Password must be at least 8 characters.'; } elseif ($password !== $confirm_password) { $errors['confirm_password'] = 'Passwords do not match.'; } // Check if username or email already exists if (empty($errors)) { $stmt = $pdo->prepare("SELECT user_id FROM users WHERE username = ? OR email = ?"); $stmt->execute([$fields['username'], $fields['email']]); if ($stmt->fetch()) { $errors['general'] = 'Username or email already exists.'; } } // If no errors, create user if (empty($errors)) { try { $hashed_password = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO users (username, password, email, first_name, last_name, university_id, phone, role) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([ $fields['username'], $hashed_password, $fields['email'], $fields['first_name'], $fields['last_name'], $fields['university_id'], $fields['phone'], $fields['role'] ]); // Create a cart for customers if ($fields['role'] === 'customer') { $user_id = $pdo->lastInsertId(); $stmt = $pdo->prepare("INSERT INTO cart (user_id) VALUES (?)"); $stmt->execute([$user_id]); } $success = true; } catch (PDOException $e) { $errors['general'] = 'Registration failed. Please try again.'; } } } ?> Register - UniMarket

Create Your Account

Registration successful! You can now login.
>
>

Already have an account? Login here