PHP Form Sanitization – Step-by-Step Guide
What is PHP Form Sanitization?
PHP Form Sanitization is the process of removing or encoding harmful characters from user input to prevent security threats like SQL Injection, Cross-Site Scripting (XSS), and code manipulation.
-  Prevents XSS attacks
 Stops
- SQL Injection
- Enhances data integrity
Basic HTML Form
<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
    <label for="username">Username:</label>
    <input type="text" name="username">
    <label for="email">Email:</label>
    <input type="email" name="email">
    <label for="message">Message:</label>
    <textarea name="message"></textarea>
    <input type="submit" value="Submit">
</form>
Handling Form Data in PHP
Step 1: Initialize Variables
$username = $email = $message = "";
Step 2: Sanitize Input
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = sanitizeInput($_POST["username"]);
    $email = sanitizeEmail($_POST["email"]);
    $message = sanitizeInput($_POST["message"]);
}
Sanitize Functions
function sanitizeInput($data) {
    $data = trim($data);            // Remove extra spaces
    $data = stripslashes($data);    // Remove backslashes
    $data = htmlspecialchars($data); // Convert special characters
    return $data;
}
function sanitizeEmail($email) {
    return filter_var($email, FILTER_SANITIZE_EMAIL); // Removes invalid characters
}
Display the Sanitized Data
echo "<h3>Sanitized Input:</h3>";
echo "Username: $username <br>";
echo "Email: $email <br>";
echo "Message: $message";
Best Practices for Secure Form Sanitization
- Use htmlspecialchars()to prevent XSS attacks
- Filter input with filter_var()for email validation
- Avoid raw database queries – use prepared statements
- Limit input length to avoid buffer overflow attacks
Complete PHP Form Sanitization Code
<?php
$username = $email = $message = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = sanitizeInput($_POST["username"]);
    $email = sanitizeEmail($_POST["email"]);
    $message = sanitizeInput($_POST["message"]);
}
function sanitizeInput($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
function sanitizeEmail($email) {
    return filter_var($email, FILTER_SANITIZE_EMAIL);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP Form Sanitization</title>
</head>
<body>
    <form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
        <label for="username">Username:</label>
        <input type="text" name="username">
        <label for="email">Email:</label>
        <input type="email" name="email">
        <label for="message">Message:</label>
        <textarea name="message"></textarea>
        <input type="submit" value="Submit">
    </form>
    <h3>Sanitized Input:</h3>
    <p>Username: <?php echo $username; ?></p>
    <p>Email: <?php echo $email; ?></p>
    <p>Message: <?php echo $message; ?></p>
</body>
</html>
