Ever wondered how PHP handles form data, sessions, and cookies? 🤔 That’s where Superglobals come in! They are built-in variables in PHP that let you access user input, server details, session data, and more—from anywhere in your code!
In this beginner-friendly guide, we’ll break down PHP Superglobals, show you real-world examples, and even build a mini-project at the end. 🎯
🎯 What Are PHP Superglobals?
Superglobals are special variables in PHP that are always available—meaning you don’t need to declare them! They start with $_ and work anywhere in your script.
🚀 List of PHP Superglobals
Superglobal | Purpose |
---|---|
$_GET |
Collects data from URL parameters |
$_POST |
Collects form data from HTTP POST requests |
$_REQUEST |
Collects data from both GET & POST |
$_SESSION |
Stores session variables (user login, shopping cart, etc.) |
$_COOKIE |
Stores small data in user’s browser |
$_SERVER |
Holds server and execution environment information |
$_FILES |
Handles file uploads |
$_ENV |
Stores environment variables |
$_GLOBALS |
Accesses global variables from anywhere |
1️⃣ $_GET
– Retrieve Data from the URL
The $_GET
superglobal captures data from URL parameters.
Example: Passing Name via URL
Let’s say a user visits:
zeroexp.dev/welcome.php?name=Zero%20Dev
You can capture the name
like this:
<?php
if (isset($_GET['name'])) {
echo "Welcome, " . htmlspecialchars($_GET['name']) . "!";
} else {
echo "Welcome, guest!";
}
?>
🔍 Why use htmlspecialchars()
?
It prevents XSS attacks by converting <script>
and other dangerous input into harmless text. Always sanitize user input!
🎯 Use Case: Great for search queries, pagination, and filtering data in URLs.
2️⃣ $_POST
– Handling Secure Form Submissions
The $_POST
superglobal is used when submitting forms securely.
Example: Processing a Login Form
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = htmlspecialchars($_POST['username']);
$password = htmlspecialchars($_POST['password']);
echo "Welcome, $username!";
}
?>
Form:
<form method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
🎯 Use Case: Best for login forms, registration, and submitting confidential data.
3️⃣ $_REQUEST
– Hybrid GET & POST Handler
The $_REQUEST
superglobal can fetch both $_GET
and $_POST
data.
Example: One Function for Both GET and POST
<?php
if (isset($_REQUEST['name'])) {
echo "Hello, " . htmlspecialchars($_REQUEST['name']) . "!";
}
?>
🎯 Use Case: Best when you don’t know whether data will be sent via GET or POST.
4️⃣ $_SESSION
– Storing User Data
Sessions store data across multiple pages (e.g., login info).
Example: Creating a Session
<?php
session_start();
$_SESSION["username"] = "Zero Dev";
echo "Session stored!";
?>
Retrieving Session Data on Another Page
<?php
session_start();
echo "Welcome back, " . $_SESSION["username"] . "!";
?>
🎯 Use Case: Perfect for user authentication, shopping carts, and tracking user activity.
5️⃣ $_COOKIE
– Remembering Users
Cookies store small amounts of data in the user’s browser.
Example: Creating a Cookie
<?php
setcookie("username", "Zero Dev", time() + 3600); // Expires in 1 hour
?>
Retrieving the Cookie
<?php
if (isset($_COOKIE["username"])) {
echo "Welcome back, " . $_COOKIE["username"] . "!";
}
?>
🎯 Use Case: Useful for remembering login details and saving user preferences.
6️⃣ $_SERVER
– Getting Server Info
The $_SERVER
superglobal holds server and execution details.
Example: Get the User’s IP Address
<?php
echo "Your IP address is: " . $_SERVER['REMOTE_ADDR'];
?>
🎯 Use Case: Useful for logging user visits, detecting bots, and security checks.
7️⃣ $_FILES
– Handling File Uploads
The $_FILES
superglobal is used for uploading files.
Example: Uploading an Image
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$file_name = $_FILES["upload"]["name"];
$file_tmp = $_FILES["upload"]["tmp_name"];
move_uploaded_file($file_tmp, "uploads/" . $file_name);
echo "File uploaded successfully!";
}
?>
Form:
<form method="post" enctype="multipart/form-data">
Select file: <input type="file" name="upload"><br>
<input type="submit" value="Upload">
</form>
🎯 Use Case: Essential for file uploads (profile pictures, PDFs, etc.).
Mini Project: Simple Contact Form
Let’s build a real-world contact form using $_POST
and $_SESSION
.
contact.php
<?php
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$_SESSION["contact_name"] = htmlspecialchars($_POST['name']);
$_SESSION["contact_message"] = htmlspecialchars($_POST['message']);
header("Location: success.php");
}
?>
<form method="post">
Name: <input type="text" name="name"><br>
Message: <textarea name="message"></textarea><br>
<input type="submit" value="Submit">
</form>
success.php
<?php
session_start();
if (isset($_SESSION["contact_name"])) {
echo "Thank you, " . $_SESSION["contact_name"] . "! Your message has been received.";
session_destroy();
} else {
echo "No message submitted.";
}
?>
✅ What’s Happening?
- The form submits data via POST.
- We store the data in a session.
- On the next page, we display the message and destroy the session.
🔥 Use Case: This is how real contact forms work! 🚀
🚀 Final Thoughts
Superglobals are powerful tools that make PHP dynamic and interactive. You can handle forms, track users, upload files, and access server data easily!
👉 Next: Handling Forms in PHP
Happy coding! 🎉🚀
Superglobals are very essential in PHP, most of the time, you will not need it. But in few cases, you will need to touch it.