Form Url Or Email in PHP
? Validating URL or Email in PHP Forms
In PHP, you can validate URLs and email addresses to ensure that the data provided by users is in a valid format. You can perform validation using PHP's built-in filter_var() function, which simplifies the process of checking whether the provided URL or email is valid.
1. HTML Form to Accept URL and Email
First, create an HTML form that collects both a URL and an Email from the user.
<!-- form-url-email.html --><form action="form-url-email.php" method="post"> <label for="email">Email:</label> <input type="email" id="email" name="email" required><br><br> <label for="website">Website (URL):</label> <input type="text" id="website" name="website" required><br><br> <input type="submit" value="Submit"></form>Email field uses the
type="email"to prompt basic client-side validation (though this should still be validated server-side).Website is a plain text input where the user enters a URL.
2. PHP Script for Validating URL and Email
The PHP script checks if the entered Email and Website URL are valid.
Example: PHP Script for URL and Email Validation
<?php// Initialize variables and set to empty values$email = $website = "";$emailErr = $websiteErr = "";// Check if form is submittedif ($_SERVER["REQUEST_METHOD"] == "POST") { // Validate Email if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = sanitize_input($_POST["email"]); // Validate email format if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; } } // Validate Website URL if (empty($_POST["website"])) { $websiteErr = "Website is required"; } else { $website = sanitize_input($_POST["website"]); // Validate URL format if (!filter_var($website, FILTER_VALIDATE_URL)) { $websiteErr = "Invalid URL format"; } } // If no errors, display success message if (empty($emailErr) && empty($websiteErr)) { echo "<h2>Form Submitted Successfully!</h2>"; echo "Email: $email<br>"; echo "Website: $website<br>"; }}// Function to sanitize user inputfunction sanitize_input($data) { $data = trim($data); // Remove extra spaces $data = stripslashes($data); // Remove backslashes $data = htmlspecialchars($data); // Convert special characters to HTML entities return $data;}?><!-- HTML to display form and error messages --><h2>PHP Form Validation for Email and URL</h2><form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> Email: <input type="email" name="email" value="<?php echo $email; ?>"> <span><?php echo $emailErr; ?></span><br><br> Website: <input type="text" name="website" value="<?php echo $website; ?>"> <span><?php echo $websiteErr; ?></span><br><br> <input type="submit" value="Submit"></form>3. Explanation of the PHP Script
1. Email Validation
FILTER_VALIDATE_EMAIL: This filter checks if the provided email address is in a valid format (e.g.,example@example.com).The email is sanitized using
sanitize_input()to ensure it's clean before validation.
2. URL Validation
FILTER_VALIDATE_URL: This filter checks if the provided string is a valid URL (e.g.,https://www.example.com).If the URL is empty or not in the correct format, an error message will be displayed.
3. Sanitizing Inputs
The function
sanitize_input()is used to:Trim extra spaces from the input.
Remove slashes (
stripslashes()).Convert special characters to HTML entities (
htmlspecialchars()), which is important for preventing Cross-Site Scripting (XSS) attacks.
4. Error Handling
If there are validation errors (invalid email or URL format), they are displayed next to the corresponding input field.
If everything is valid, the form data is displayed on the page with a success message.
4. Security Considerations
Sanitize Input: Always sanitize and validate user input to prevent malicious data from being processed.
Use
htmlspecialchars(): This ensures that any special characters in user input (such as<,>,&) are safely rendered as HTML entities, preventing XSS attacks.Server-Side Validation: Never rely solely on client-side validation (HTML5 attributes or JavaScript). Always validate the input on the server-side.
5. Additional Features
Database Storage: After validating the email and URL, you can store this information in a database, such as MySQL, for later use.
Advanced URL Validation: You can further enhance URL validation by checking whether the URL actually points to an active webpage using
get_headers()orcURLin PHP.
Would you like to extend this example to handle additional validations, or perhaps store the validated data in a database?