Bird
Raised Fist0
PHPprogramming~10 mins

Form handling execution flow in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if the form was submitted using POST method.

PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == '[1]') {
    echo "Form submitted!";
}
?>
Drag options to blanks, or click blank then click option'
AGET
BDELETE
CPUT
DPOST
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'GET' instead of 'POST' to check the form submission.
Not using quotes around the method name.
2fill in blank
medium

Complete the code to safely get the submitted username from the form.

PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['[1]'] ?? '';
    echo "Hello, " . htmlspecialchars($username);
}
?>
Drag options to blanks, or click blank then click option'
Ausername
Bname
Cuser
Dlogin
Attempts:
3 left
💡 Hint
Common Mistakes
Using a wrong key like 'user' or 'name' that does not match the form field.
Not using the null coalescing operator to avoid undefined index errors.
3fill in blank
hard

Fix the error in the code to check if the form was submitted and the email field is not empty.

PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['[1]'])) {
    echo "Email received.";
}
?>
Drag options to blanks, or click blank then click option'
Ae-mail
Bmail
Cemail
Duser_email
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect field names like 'mail' or 'e-mail'.
Not checking if the field is empty before processing.
4fill in blank
hard

Fill both blanks to create an associative array of submitted form data with keys 'name' and 'age'.

PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $data = [
        '[1]' => $_POST['name'],
        '[2]' => (int)$_POST['age']
    ];
    print_r($data);
}
?>
Drag options to blanks, or click blank then click option'
Aname
Busername
Cage
Dyears
Attempts:
3 left
💡 Hint
Common Mistakes
Using keys that do not match the form fields.
Mixing up 'age' and 'years' as keys.
5fill in blank
hard

Fill all three blanks to validate and sanitize the submitted email and password fields.

PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $email = filter_var($_POST['[1]'], FILTER_VALIDATE_EMAIL);
    $password = trim($_POST['[2]']);
    if ($email && strlen($password) >= [3]) {
        echo "Valid input.";
    } else {
        echo "Invalid input.";
    }
}
?>
Drag options to blanks, or click blank then click option'
Aemail
Bpassword
C8
D6
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong field names like 'user_email' or 'pass'.
Setting password length too low or forgetting to trim whitespace.

Practice

(1/5)
1. What is the main purpose of checking $_SERVER['REQUEST_METHOD'] == 'POST' in PHP form handling?
easy
A. To display the form to the user
B. To ensure the form data is processed only when the form is submitted
C. To reset the form fields
D. To connect to the database

Solution

  1. Step 1: Understand the role of $_SERVER['REQUEST_METHOD']

    This variable tells us how the page was requested, for example, via GET or POST.
  2. Step 2: Check why we compare it to 'POST'

    When the form is submitted, it usually sends data via POST. Checking this ensures we only process data after submission.
  3. Final Answer:

    To ensure the form data is processed only when the form is submitted -> Option B
  4. Quick Check:

    Request method check = process form only after submit [OK]
Hint: Process form only if request method is POST [OK]
Common Mistakes:
  • Processing form data without checking request method
  • Confusing GET and POST methods
  • Trying to process form before submission
2. Which of the following is the correct way to start processing form data only after submission in PHP?
easy
A. if ($_SERVER['REQUEST_METHOD'] == 'POST') { /* process form */ }
B. if ($_SERVER['REQUEST_METHOD'] = 'POST') { /* process form */ }
C. if ($_POST) { /* process form */ }
D. if ($_GET['submit']) { /* process form */ }

Solution

  1. Step 1: Identify correct comparison operator

    if ($_SERVER['REQUEST_METHOD'] = 'POST') { /* process form */ } uses a single equals sign (=) which assigns, not compares. This is incorrect.
  2. Step 2: Check proper request method check

    if ($_SERVER['REQUEST_METHOD'] == 'POST') { /* process form */ } correctly uses double equals (==) to compare $_SERVER['REQUEST_METHOD'] to 'POST'.
  3. Final Answer:

    if ($_SERVER['REQUEST_METHOD'] == 'POST') { /* process form */ } -> Option A
  4. Quick Check:

    Use '==' to compare request method [OK]
Hint: Use '==' to compare request method, not '=' [OK]
Common Mistakes:
  • Using '=' instead of '==' for comparison
  • Checking $_POST without verifying request method
  • Using $_GET when form uses POST
3. What will be the output of this PHP code when the form is submitted with name=John?
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name = $_POST['name'] ?? 'Guest';
    echo "Hello, $name!";
} else {
    echo "Please submit the form.";
}
?>
medium
A. Undefined index error
B. Please submit the form.
C. Hello, Guest!
D. Hello, John!

Solution

  1. Step 1: Check request method condition

    If the form is submitted, the request method is POST, so the if block runs.
  2. Step 2: Retrieve and display the name

    The code uses $_POST['name'] ?? 'Guest' which means if 'name' exists, use it; else use 'Guest'. Since 'name=John' is submitted, it uses 'John'.
  3. Final Answer:

    Hello, John! -> Option D
  4. Quick Check:

    POST with name=John outputs Hello, John! [OK]
Hint: Check if POST data exists, then use it or default [OK]
Common Mistakes:
  • Not checking request method before accessing $_POST
  • Expecting output without form submission
  • Forgetting null coalescing operator ??
4. Identify the error in this PHP form handling snippet:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $email = $_POST['email'];
}
echo "Email: $email";
?>
medium
A. Echoing variable outside the if block without initialization
B. Using $_POST without checking if 'email' exists
C. Missing semicolon after echo statement
D. Incorrect request method check

Solution

  1. Step 1: Analyze variable scope and initialization

    The variable $email is assigned only inside the if block, so if the request method is not POST, it remains undefined.
  2. Step 2: Check usage of variable outside if block

    Echoing $email outside the if block without initialization causes a notice or error if the form is not submitted.
  3. Final Answer:

    Echoing variable outside the if block without initialization -> Option A
  4. Quick Check:

    Use variable only after initialization [OK]
Hint: Initialize variables before use outside condition [OK]
Common Mistakes:
  • Assuming variables inside if exist outside
  • Not initializing variables before echo
  • Ignoring request method check
5. You want to keep the user's input visible in the form field after submission to improve user experience. Which PHP code snippet correctly achieves this for a text input named username?
hard
A. <input type='text' name='username' value='<?php echo $_POST['username']; ?>'>
B. <input type='text' name='username' value='<?php echo $_GET['username']; ?>'>
C. <input type='text' name='username' value='<?php echo htmlspecialchars($_POST['username'] ?? ''); ?>'>
D. <input type='text' name='username' value='<?php echo $_POST['username'] ?? 'Guest'; ?>'>

Solution

  1. Step 1: Ensure safe output in HTML attribute

    Using htmlspecialchars() prevents HTML injection and ensures special characters display correctly.
  2. Step 2: Use null coalescing operator to avoid undefined index

    $_POST['username'] ?? '' ensures the value is empty string if not set, avoiding errors.
  3. Final Answer:

    <input type='text' name='username' value='<?php echo htmlspecialchars($_POST['username'] ?? ''); ?>'> -> Option C
  4. Quick Check:

    Use htmlspecialchars and ?? for safe, persistent input [OK]
Hint: Use htmlspecialchars and ?? to keep input safe and visible [OK]
Common Mistakes:
  • Not using htmlspecialchars causing XSS risk
  • Not handling unset $_POST causing errors
  • Using $_GET when form uses POST
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