Beginner’s Guide to PHP Form Handling with Cookies

beginner’s-guide-to-php-form-handling-with-cookies

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.

We’ll create a simple application that:

  1. Allows users to submit their information via a form.
  2. Stores the submitted data in cookies.
  3. Displays the stored cookie data.
  4. 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">
    </span>PHP Form with Cookie Handling<span class="nt">


    

Submit Your Information

method="get" action="submit.php"> for="name">Name:
type="text" id="name" name="name">

for="age">Age:
type="number" id="age" name="age">

for="email">Email:
type="email" id="email" name="email">

for="website">Website:
type="url" id="website" name="website">

Gender:
type="radio" id="male" name="gender" value="Male"> for="male">Male
type="radio" id="female" name="gender" value="Female"> for="female">Female

Hobbies:
type="checkbox" id="reading" name="hobbies[]" value="Reading"> for="reading">Reading
type="checkbox" id="traveling" name="hobbies[]" value="Traveling"> for="traveling">Traveling
type="checkbox" id="sports" name="hobbies[]" value="Sports"> for="sports">Sports
type="checkbox" id="music" name="hobbies[]" value="Music"> for="music">Music

for="comments">Comments:
id="comments" name="comments" rows="4" cols="50" placeholder="Write your comments here...">

type="submit" value="Submit">

action="view_cookie.php"> type="submit" value="View Cookie Data"> action="delete_cookie.php"> type="submit" value="Delete Cookie Data">

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">
    </span>Form Submission Result<span class="nt">


    

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: $website

"
; echo "

Gender: $gender

"
; echo "

Hobbies: " . implode(", ", $hobbies) . "

"
; echo "

Comments: $comments

"
; } ?>

href="index.php">Go Back

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">
    </span>View Cookie Data<span class="nt">


    

View Stored Cookie Data

if (isset($_COOKIE['name'])) { echo "

Name: " . $_COOKIE['name'] . "

"
; echo "

Age: " . $_COOKIE['age'] . "

"
; echo "

Email: " . $_COOKIE['email'] . "

"
; echo "

Website: ] . "' target='_blank'>" . $_COOKIE['website'] . "

"
; echo "

Gender: " . $_COOKIE['gender'] . "

"
; echo "

Hobbies: " . $_COOKIE['hobbies'] . "

"
; echo "

Comments: " . $_COOKIE['comments'] . "

"
; } else { echo "

No cookie data found!

"
; } ?>

href="index.php">Go Back

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">
    </span>Cookie Deleted<span class="nt">


    

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! 🎉

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
-your-first-java-project-in-intellij-idea:-creating-a-“hello-world”-in-java-

🚀 Your First Java Project in IntelliJ IDEA: Creating a “Hello World” in Java 🚀

Next Post
the-power-of-visual-data-analysis:-tools,-techniques,-and-software-for-enhanced-insights

The Power of Visual Data Analysis: Tools, Techniques, and Software for Enhanced Insights

Related Posts