prepare("SELECT id FROM users WHERE email = ?"); $stmt->execute([$email]); if ($stmt->fetch()) { $errors[] = 'Email address is already in use.'; } } if (empty($password)) { $errors[] = 'Password is required.'; } elseif (strlen($password) < 8) { $errors[] = 'Password must be at least 8 characters long.'; } elseif ($password !== $password_confirm) { $errors[] = 'Passwords do not match.'; } if (empty($errors)) { $hashed_password = password_hash($password, PASSWORD_DEFAULT); try { $pdo = db(); $stmt = $pdo->prepare("INSERT INTO users (name, email, password, role) VALUES (?, ?, ?, 'user')"); $stmt->execute([$name, $email, $hashed_password]); $success_message = 'Registration successful! You can now log in.'; // Clear form fields on success $name = ''; $email = ''; } catch (PDOException $e) { $errors[] = "Database error: Could not register user."; // In a real app, you would log this error. // error_log("Registration failed: " . $e->getMessage()); } } } ?>