What are some common methods for filtering and validating user input in PHP forms?

Filtering and validating user input in PHP forms is crucial to prevent security vulnerabilities such as SQL injection, cross-site scripting, and other malicious attacks. Common methods for filtering and validating user input include using PHP functions like filter_var() for sanitizing input data, validating input against specific criteria using regular expressions, and using prepared statements to prevent SQL injection attacks.

// Example of filtering and validating user input in PHP form
$username = $_POST['username'];
$email = $_POST['email'];

// Filter and sanitize input data
$username = filter_var($username, FILTER_SANITIZE_STRING);
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Validate email format
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Invalid email format";
}

// Validate username length
if (strlen($username) < 5) {
    echo "Username must be at least 5 characters long";
}

// Use prepared statements to prevent SQL injection
$stmt = $pdo->prepare("INSERT INTO users (username, email) VALUES (:username, :email)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);
$stmt->execute();