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>