Form handling execution flow shows how a web page collects user input and processes it step-by-step.
Form handling execution flow in 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.
<?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>
<?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>
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 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>
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.
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
$_SERVER['REQUEST_METHOD'] == 'POST' in PHP form handling?Solution
Step 1: Understand the role of
This variable tells us how the page was requested, for example, via GET or POST.$_SERVER['REQUEST_METHOD']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.Final Answer:
To ensure the form data is processed only when the form is submitted -> Option BQuick Check:
Request method check = process form only after submit [OK]
- Processing form data without checking request method
- Confusing GET and POST methods
- Trying to process form before submission
Solution
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.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'.Final Answer:
if ($_SERVER['REQUEST_METHOD'] == 'POST') { /* process form */ } -> Option AQuick Check:
Use '==' to compare request method [OK]
- Using '=' instead of '==' for comparison
- Checking $_POST without verifying request method
- Using $_GET when form uses POST
name=John?
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['name'] ?? 'Guest';
echo "Hello, $name!";
} else {
echo "Please submit the form.";
}
?>Solution
Step 1: Check request method condition
If the form is submitted, the request method is POST, so the if block runs.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'.Final Answer:
Hello, John! -> Option DQuick Check:
POST with name=John outputs Hello, John! [OK]
- Not checking request method before accessing $_POST
- Expecting output without form submission
- Forgetting null coalescing operator ??
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$email = $_POST['email'];
}
echo "Email: $email";
?>Solution
Step 1: Analyze variable scope and initialization
The variable$emailis assigned only inside the if block, so if the request method is not POST, it remains undefined.Step 2: Check usage of variable outside if block
Echoing$emailoutside the if block without initialization causes a notice or error if the form is not submitted.Final Answer:
Echoing variable outside the if block without initialization -> Option AQuick Check:
Use variable only after initialization [OK]
- Assuming variables inside if exist outside
- Not initializing variables before echo
- Ignoring request method check
username?Solution
Step 1: Ensure safe output in HTML attribute
Usinghtmlspecialchars()prevents HTML injection and ensures special characters display correctly.Step 2: Use null coalescing operator to avoid undefined index
$_POST['username'] ?? ''ensures the value is empty string if not set, avoiding errors.Final Answer:
<input type='text' name='username' value='<?php echo htmlspecialchars($_POST['username'] ?? ''); ?>'> -> Option CQuick Check:
Use htmlspecialchars and ?? for safe, persistent input [OK]
- Not using htmlspecialchars causing XSS risk
- Not handling unset $_POST causing errors
- Using $_GET when form uses POST
Ready to prove it?
Pass the test and this pattern moves unknown
