exec(" CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, full_name VARCHAR(255) NOT NULL, mobile_number VARCHAR(20) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); "); // --- Check if user already exists --- $stmt = $pdo->prepare("SELECT id FROM users WHERE mobile_number = :mobile_number"); $stmt->execute(['mobile_number' => $mobile_number]); if ($stmt->fetch()) { redirect_with_message('error', 'A user with this mobile number already exists.'); } // --- Create User --- $password_hash = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare( "INSERT INTO users (full_name, mobile_number, password_hash) VALUES (:full_name, :mobile_number, :password_hash)" ); $stmt->execute([ ':full_name' => $full_name, ':mobile_number' => $mobile_number, ':password_hash' => $password_hash ]); redirect_with_message('success', 'Registration successful! You can now log in.'); } catch (PDOException $e) { // In a real app, you would log this error. // error_log("Registration failed: " . $e->getMessage()); redirect_with_message('error', 'An internal error occurred. Please try again later.'); }