real_escape_string(trim($_POST['username'])); $email = $conn->real_escape_string(trim($_POST['email'])); $password = trim($_POST['password']); $confirm_password = trim($_POST['confirm_password']); $user_type = $conn->real_escape_string(trim($_POST['user_type'])); // Validation if (empty($username) || empty($email) || empty($password) || empty($confirm_password) || empty($user_type)) { $error = "All fields are required."; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $error = "Please enter a valid email address."; } elseif (strlen($password) < 6) { $error = "Password must be at least 6 characters long."; } elseif ($password !== $confirm_password) { $error = "Passwords do not match."; } elseif ($user_type !== 'student' && $user_type !== 'faculty') { $error = "Invalid user type."; } else { // Check if username already exists $check_query = "SELECT * FROM users WHERE username = ? OR email = ?"; $check_stmt = $conn->prepare($check_query); $check_stmt->bind_param("ss", $username, $email); $check_stmt->execute(); $check_result = $check_stmt->get_result(); if ($check_result->num_rows > 0) { $user = $check_result->fetch_assoc(); if ($user['username'] === $username) { $error = "Username already taken. Please choose another."; } else { $error = "Email already registered. Please use another email or login."; } } else { // Check if users table exists, create it if not $table_check = "SHOW TABLES LIKE 'users'"; $table_exists = $conn->query($table_check)->num_rows > 0; if (!$table_exists) { $create_table = "CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, user_type ENUM('student', 'faculty') NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, last_login TIMESTAMP NULL, status ENUM('active', 'inactive') DEFAULT 'active' )"; if (!$conn->query($create_table)) { $error = "Error creating user table: " . $conn->error; } } if (empty($error)) { // Hash password $hashed_password = password_hash($password, PASSWORD_DEFAULT); // Insert new user $insert_query = "INSERT INTO users (username, email, password, user_type) VALUES (?, ?, ?, ?)"; $insert_stmt = $conn->prepare($insert_query); $insert_stmt->bind_param("ssss", $username, $email, $hashed_password, $user_type); if ($insert_stmt->execute()) { // Registration successful $_SESSION['success_message'] = "Registration successful! Please login with your credentials."; header('Location: login.php'); exit; } else { $error = "Registration failed: " . $conn->error; } } } } } // Include header include 'includes/header.php'; ?>

Create a New Account

Join the Domain Management System

Register

Please select a user type.
Please choose a username.
Please enter a valid email address.
Password must be at least 6 characters long.
Please enter a password (minimum 6 characters).
Please confirm your password.
close(); ?>