In this guide, we’ll explore PHP form handling using cookies to store user data. Cookies are a way to persist small amounts of data on the user’s browser, making it possible to remember user preferences or information across different sessions.
Our project involves creating a form where users can input their information, storing the submitted data in cookies, and then viewing or deleting the cookie data. By the end of this tutorial, you’ll understand how to set, retrieve, and delete cookies in PHP.
What Are Cookies?
Cookies are small files stored on the user’s browser. They allow web servers to store data specific to a user and retrieve it on subsequent visits. In PHP, you can work with cookies using the setcookie()
function to create or update cookies and the $_COOKIE
superglobal to read them.
The Project: PHP Form with Cookie Handling
We’ll create a simple application that:
- Allows users to submit their information via a form.
- Stores the submitted data in cookies.
- Displays the stored cookie data.
- Provides an option to delete the cookies.
File Structure
Our project includes the following files:
project-folder/
│
├── index.php # Form page
├── submit.php # Form handling and cookie storage
├── view_cookie.php # Viewing cookie data
├── delete_cookie.php # Deleting cookie data
Step 1: Creating the Form (index.php
)
The index.php
file contains the HTML form for user input, along with buttons to view or delete cookie data.
lang="en">
charset="UTF-8">
name="viewport" content="width=device-width, initial-scale=1.0">
PHP Form with Cookie Handling
Submit Your Information
Step 2: Handling Form Submission (submit.php
)
The submit.php
file processes the form data, validates and sanitizes it, and then stores it in cookies.
// Initialize error messages and data variables
$error_name = "";
$error_age = "";
$error_email = "";
$error_website = "";
$name = $age = $email = $website = $gender = $comments = $hobbies = "";
// Sanitize and validate the form data
if ($_SERVER["REQUEST_METHOD"] == "GET") {
// Sanitize inputs
$name = htmlspecialchars(trim($_GET['name']));
$age = htmlspecialchars(trim($_GET['age']));
$email = htmlspecialchars(trim($_GET['email']));
$website = htmlspecialchars(trim($_GET['website']));
$gender = isset($_GET['gender']) ? $_GET['gender'] : '';
$hobbies = isset($_GET['hobbies']) ? $_GET['hobbies'] : [];
$comments = htmlspecialchars(trim($_GET['comments']));
// Validation checks
if (empty($name)) {
$error_name = "Name is required.";
}
if (empty($age) || !filter_var($age, FILTER_VALIDATE_INT) || $age <= 0) {
$error_age = "Valid age is required.";
}
if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error_email = "Valid email is required.";
}
if (empty($website) || !filter_var($website, FILTER_VALIDATE_URL)) {
$error_website = "Valid website URL is required.";
}
// If no errors, set cookies
if (empty($error_name) && empty($error_age) && empty($error_email) && empty($error_website)) {
// Set cookies for the form data
setcookie("name", $name, time() + (86400 * 30), "https://dev.to/");
setcookie("age", $age, time() + (86400 * 30), "https://dev.to/");
setcookie("email", $email, time() + (86400 * 30), "https://dev.to/");
setcookie("website", $website, time() + (86400 * 30), "https://dev.to/");
setcookie("gender", $gender, time() + (86400 * 30), "https://dev.to/");
setcookie("hobbies", implode(", ", $hobbies), time() + (86400 * 30), "https://dev.to/");
setcookie("comments", $comments, time() + (86400 * 30), "https://dev.to/");
}
}
?>
lang="en">
charset="UTF-8">
name="viewport" content="width=device-width, initial-scale=1.0">
Form Submission Result
Form Submission Result
if ($error_name) {
echo "$error_name";
}
if ($error_age) {
echo "$error_age";
}
if ($error_email) {
echo "$error_email";
}
if ($error_website) {
echo "$error_website";
}
if (empty($error_name) && empty($error_age) && empty($error_email) && empty($error_website)) {
// Display the form submission results
echo "Form Submission Results:
";
echo "Name:
$name";
echo "Age:
$age";
echo "Email:
$email";
echo "$website";
echo "Gender:
$gender";
echo "Hobbies: "
. implode(", ", $hobbies) . "";
echo "Comments:
$comments";
}
?>
href="index.php">Go Back
Step 3: Viewing Cookie Data (view_cookie.php
)
This file displays the cookie data stored on the user’s browser.
lang="en">
charset="UTF-8">
name="viewport" content="width=device-width, initial-scale=1.0">
View Cookie Data
View Stored Cookie Data
if (isset($_COOKIE['name'])) {
echo "Name: "
. $_COOKIE['name'] . "";
echo "Age: "
. $_COOKIE['age'] . "";
echo "Email: "
. $_COOKIE['email'] . "";
echo "";
echo "Gender: "
. $_COOKIE['gender'] . "";
echo "Hobbies: "
. $_COOKIE['hobbies'] . "";
echo "Comments: "
. $_COOKIE['comments'] . "";
} else {
echo "No cookie data found!
";
}
?>
href="index.php">Go Back
Step 4: Deleting Cookie Data (delete_cookie.php
)
This file deletes the cookies by setting their expiration time to the past.
// Deleting cookies by setting their expiration time to past
setcookie("name", "", time() - 3600, "https://dev.to/");
setcookie("age", "", time() - 3600, "https://dev.to/");
setcookie("email", "", time() - 3600, "https://dev.to/");
setcookie("website", "", time() - 3600, "https://dev.to/");
setcookie("gender", "", time() - 3600, "https://dev.to/");
setcookie("hobbies", "", time() - 3600, "https://dev.to/");
setcookie("comments", "", time() - 3600, "https://dev.to/");
?>
lang="en">
charset="UTF-8">
name="viewport" content="width=device-width, initial-scale=1.0">
Cookie Deleted
Cookies Deleted
All cookies have been deleted successfully.
href="index.php">Go Back
Conclusion
This project demonstrates how to use cookies for form handling in PHP. By implementing cookies, you can persist user data and improve the functionality of your web applications. Experiment with this project and explore more advanced use cases for cookies in PHP.
Happy coding! 🎉