Working with Forms & HTTP
⏱ 20 min read read
PHP Superglobals:
PHP provides built-in arrays called superglobals that are available
everywhere.
$\_GET --- URL query string parameters: ?name=Alice&age=25
$\_POST --- Form data sent via POST method
$\_REQUEST --- Combined GET + POST + COOKIE
$\_SERVER --- Server info: REQUEST_METHOD, HTTP_HOST, REMOTE_ADDR
$\_SESSION --- Session data (persists across pages)
$\_COOKIE --- Browser cookies
$\_FILES --- Uploaded file info
$\_ENV --- Environment variables
Handling Form Data:
// From URL: ?name=Alice&score=95
$name = $\_GET['name'] ?? '';
$score = $\_GET['score'] ?? 0;
// From POST form
if ($\_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $\_POST['name'] ?? '';
$email = $\_POST['email'] ?? '';
}
NEVER trust user input! Always validate AND sanitize.
VALIDATION: Is the data in the expected format/range?
SANITIZATION: Remove or escape dangerous characters.
Use htmlspecialchars() before displaying ANY user input.
Use filter_var() for validation (email, URL, int, etc.).
Never put raw $\_GET/$\_POST directly in SQL queries --- use
prepared statements!
Validation & Sanitization:
// Validate email
filter_var($email, FILTER_VALIDATE_EMAIL) // email or false
// Validate integer
filter_var($score, FILTER_VALIDATE_INT, ['options' =>
['min_range'=>0,'max_range'=>100]])
// Sanitize --- strip dangerous characters
filter_var($name, FILTER_SANITIZE_SPECIAL_CHARS)
// Escape for HTML output (ALWAYS do this)
htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8')
Sessions:
session_start(); // must be FIRST thing on page
$\_SESSION['user'] = 'Alice'; // store
$name = $\_SESSION['user']; // retrieve
session_destroy(); // logout --- clears all session data
PHP provides built-in arrays called superglobals that are available
everywhere.
$\_GET --- URL query string parameters: ?name=Alice&age=25
$\_POST --- Form data sent via POST method
$\_REQUEST --- Combined GET + POST + COOKIE
$\_SERVER --- Server info: REQUEST_METHOD, HTTP_HOST, REMOTE_ADDR
$\_SESSION --- Session data (persists across pages)
$\_COOKIE --- Browser cookies
$\_FILES --- Uploaded file info
$\_ENV --- Environment variables
Handling Form Data:
// From URL: ?name=Alice&score=95
$name = $\_GET['name'] ?? '';
$score = $\_GET['score'] ?? 0;
// From POST form
if ($\_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $\_POST['name'] ?? '';
$email = $\_POST['email'] ?? '';
}
NEVER trust user input! Always validate AND sanitize.
VALIDATION: Is the data in the expected format/range?
SANITIZATION: Remove or escape dangerous characters.
Use htmlspecialchars() before displaying ANY user input.
Use filter_var() for validation (email, URL, int, etc.).
Never put raw $\_GET/$\_POST directly in SQL queries --- use
prepared statements!
Validation & Sanitization:
// Validate email
filter_var($email, FILTER_VALIDATE_EMAIL) // email or false
// Validate integer
filter_var($score, FILTER_VALIDATE_INT, ['options' =>
['min_range'=>0,'max_range'=>100]])
// Sanitize --- strip dangerous characters
filter_var($name, FILTER_SANITIZE_SPECIAL_CHARS)
// Escape for HTML output (ALWAYS do this)
htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8')
Sessions:
session_start(); // must be FIRST thing on page
$\_SESSION['user'] = 'Alice'; // store
$name = $\_SESSION['user']; // retrieve
session_destroy(); // logout --- clears all session data
Log in to track your progress and earn badges as you complete lessons.
Log In to Track Progress