Bird
Raised Fist0
PHPprogramming~20 mins

Common validation patterns in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Common validation patterns
📖 Scenario: You are building a simple PHP script to validate user input from a form. The form collects a username and an email address. You want to check that the username is not empty and the email address is in a valid format.
🎯 Goal: Create a PHP script that validates a username and an email address using common validation patterns. You will first set up the input data, then configure validation rules, apply the validation logic, and finally output the validation results.
📋 What You'll Learn
Create variables for username and email with exact values
Create a variable to hold an empty errors array
Use if statements to check if username is empty and if email is valid using filter_var
Print the errors array or a success message
💡 Why This Matters
🌍 Real World
Validating user input is essential in web forms to ensure data is correct and safe before saving or processing.
💼 Career
Understanding common validation patterns is important for backend developers, PHP programmers, and anyone working with user data.
Progress0 / 4 steps
1
DATA SETUP: Create input variables
Create two variables: $username with the value "john_doe" and $email with the value "john@example.com".
PHP
Hint

Use the = operator to assign the exact string values to the variables.

2
CONFIGURATION: Create an errors array
Create an empty array called $errors to store validation error messages.
PHP
Hint

Use [] to create an empty array in PHP.

3
CORE LOGIC: Validate username and email
Use if statements to check if $username is empty and if $email is not a valid email using filter_var with FILTER_VALIDATE_EMAIL. If invalid, add error messages to $errors array using $errors[] = "message";.
PHP
Hint

Use empty() to check if a string is empty and filter_var() with FILTER_VALIDATE_EMAIL to check email format.

4
OUTPUT: Display validation results
Use if to check if $errors array is empty. If empty, print "Validation passed!". Otherwise, print each error message on a new line using a foreach loop.
PHP
Hint

Use empty() to check if the errors array has no elements. Use foreach to print each error if any.

Practice

(1/5)
1.

Which PHP function is commonly used to validate if a string is a valid email address?

easy
A. preg_match with '/^\d+$/'
B. filter_var with FILTER_VALIDATE_EMAIL
C. strlen to check length
D. strtolower to convert to lowercase

Solution

  1. Step 1: Understand email validation in PHP

    PHP provides a built-in filter called FILTER_VALIDATE_EMAIL to check if a string is a valid email.
  2. Step 2: Identify the correct function usage

    filter_var with FILTER_VALIDATE_EMAIL returns the email if valid, or false if invalid.
  3. Final Answer:

    filter_var with FILTER_VALIDATE_EMAIL -> Option B
  4. Quick Check:

    Email validation = filter_var with FILTER_VALIDATE_EMAIL [OK]
Hint: Use filter_var with FILTER_VALIDATE_EMAIL for email checks [OK]
Common Mistakes:
  • Using preg_match with wrong regex for email
  • Checking length instead of format
  • Using string functions unrelated to validation
2.

Which of the following is the correct syntax to validate a URL using filter_var in PHP?

?
easy
A. filter_var($url, FILTER_VALIDATE_INT);
B. filter_var($url, FILTER_VALIDATE_EMAIL);
C. filter_var($url, FILTER_VALIDATE_URL);
D. filter_var($url, FILTER_VALIDATE_BOOLEAN);

Solution

  1. Step 1: Identify the filter for URL validation

    FILTER_VALIDATE_URL is the correct filter to check if a string is a valid URL.
  2. Step 2: Confirm correct function call

    filter_var takes the variable and the filter constant as parameters.
  3. Final Answer:

    filter_var($url, FILTER_VALIDATE_URL); -> Option C
  4. Quick Check:

    URL validation = filter_var with FILTER_VALIDATE_URL [OK]
Hint: Use FILTER_VALIDATE_URL with filter_var for URL validation [OK]
Common Mistakes:
  • Using FILTER_VALIDATE_EMAIL for URLs
  • Using integer or boolean filters incorrectly
  • Missing the filter parameter
3.

What will be the output of the following PHP code?

$phone = '123-456-7890';
if (preg_match('/^\d{3}-\d{3}-\d{4}$/', $phone)) {
    echo 'Valid phone';
} else {
    echo 'Invalid phone';
}
medium
A. Syntax error
B. Invalid phone
C. No output
D. Valid phone

Solution

  1. Step 1: Analyze the regex pattern

    The pattern /^\d{3}-\d{3}-\d{4}$/ matches exactly 3 digits, a dash, 3 digits, a dash, then 4 digits.
  2. Step 2: Check the input string against the pattern

    The string '123-456-7890' matches this pattern exactly.
  3. Final Answer:

    Valid phone -> Option D
  4. Quick Check:

    Regex matches phone format = Valid phone [OK]
Hint: Match exact pattern with preg_match regex anchors ^ and $ [OK]
Common Mistakes:
  • Forgetting anchors ^ and $ in regex
  • Using wrong quantifiers in regex
  • Not escaping special characters
4.

Identify the error in this PHP code snippet for validating an integer:

$num = '123a';
if (filter_var($num, FILTER_VALIDATE_INT)) {
    echo 'Valid integer';
} else {
    echo 'Invalid integer';
}
medium
A. filter_var returns false for '123a', so output is 'Invalid integer'
B. filter_var should use FILTER_VALIDATE_NUMBER instead
C. The variable $num should be cast to int before validation
D. filter_var does not validate integers

Solution

  1. Step 1: Understand filter_var with FILTER_VALIDATE_INT

    This filter returns the integer value if valid, or false if invalid.
  2. Step 2: Check input '123a'

    The string '123a' is not a valid integer, so filter_var returns false.
  3. Final Answer:

    filter_var returns false for '123a', so output is 'Invalid integer' -> Option A
  4. Quick Check:

    Invalid integer string returns false = 'Invalid integer' output [OK]
Hint: filter_var returns false if input is not a pure integer string [OK]
Common Mistakes:
  • Using FILTER_VALIDATE_NUMBER which does not exist
  • Casting before validation causing wrong results
  • Assuming filter_var always returns boolean
5.

You want to validate a username in PHP that must start with a letter, can contain letters, numbers, underscores, and be 5 to 15 characters long. Which preg_match pattern correctly validates this?

hard
A. /^[a-zA-Z][a-zA-Z0-9_]{4,14}$/
B. /^[0-9][a-zA-Z0-9_]{4,14}$/
C. /^[a-zA-Z0-9_]{5,15}$/
D. /^[a-zA-Z]{5,15}$/

Solution

  1. Step 1: Understand username requirements

    Username must start with a letter, then 4 to 14 characters of letters, digits, or underscores, total length 5-15.
  2. Step 2: Analyze each pattern

    /^[a-zA-Z][a-zA-Z0-9_]{4,14}$/ matches a letter at start, then 4-14 allowed chars, total 5-15 length. Others fail start or length rules.
  3. Final Answer:

    /^[a-zA-Z][a-zA-Z0-9_]{4,14}$/ -> Option A
  4. Quick Check:

    Start letter + allowed chars + length 5-15 = /^[a-zA-Z][a-zA-Z0-9_]{4,14}$/ [OK]
Hint: Start with letter, then allowed chars with correct length in regex [OK]
Common Mistakes:
  • Allowing digits as first character
  • Not enforcing length limits
  • Missing anchors ^ and $
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard