Bird
Raised Fist0
PHPprogramming~5 mins

Form handling execution flow in PHP

Choose your learning style10 modes available
Introduction

Form handling execution flow shows how a web page collects user input and processes it step-by-step.

When you want to get user information like name or email from a web form.
When you need to check if the user filled the form correctly before saving data.
When you want to show a message after the user submits a form.
When you want to keep the form data visible after submission for correction.
When you want to send form data to a server for processing.
Syntax
PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Process form data here
    $name = $_POST['name'];
    // Validate and use $name
}
?>

<form method="post" action="">
    <input type="text" name="name">
    <input type="submit" value="Send">
</form>

The $_SERVER['REQUEST_METHOD'] checks if the form was submitted using POST.

The $_POST array holds the data sent by the form.

Examples
This example gets an email from the form and shows it after submission.
PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $email = $_POST['email'];
    echo "Email received: $email";
}
?>

<form method="post" action="">
    <input type="email" name="email">
    <input type="submit" value="Submit">
</form>
This example checks if the age entered is a number before showing it.
PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $age = $_POST['age'];
    if (is_numeric($age)) {
        echo "Your age is $age.";
    } else {
        echo "Please enter a valid number.";
    }
}
?>

<form method="post" action="">
    <input type="text" name="age">
    <input type="submit" value="Check Age">
</form>
Sample Program

This program shows a form asking for a username. When submitted, it checks if the username is empty. If empty, it asks to enter it. Otherwise, it greets the user. The form keeps the entered username visible after submission.

PHP
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = trim($_POST['username']);
    if (empty($username)) {
        $message = "Please enter your username.";
    } else {
        $message = "Hello, $username!";
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form Handling Flow</title>
</head>
<body>
    <form method="post" action="">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" value="<?php echo htmlspecialchars($_POST['username'] ?? '', ENT_QUOTES); ?>">
        <input type="submit" value="Submit">
    </form>
    <?php if (isset($message)) { echo "<p>$message</p>"; } ?>
</body>
</html>
OutputSuccess
Important Notes

Always check $_SERVER['REQUEST_METHOD'] to know if the form was submitted.

Use htmlspecialchars() to safely show user input in the form to avoid security issues.

Keep form data visible after submission to help users fix mistakes easily.

Summary

Form handling execution flow controls how data moves from user input to server processing.

Check the request method to know when to process form data.

Validate and keep user input visible for better user experience.

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