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.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PHP Form with Cookie Handling</title> </head> <body> <h1>Submit Your Information</h1> <!-- Form Section for User Input --> <form method="get" action="submit.php"> <label for="name">Name:</label><br> <input type="text"> <hr> <h3> Step 2: Handling Form Submission (submit.php) </h3> <p>The submit.php file processes the form data, validates and sanitizes it, and then stores it in cookies.<br> </p> <pre class="brush:php;toolbar:false"><?php // 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), "/"); setcookie("age", $age, time() + (86400 * 30), "/"); setcookie("email", $email, time() + (86400 * 30), "/"); setcookie("website", $website, time() + (86400 * 30), "/"); setcookie("gender", $gender, time() + (86400 * 30), "/"); setcookie("hobbies", implode(", ", $hobbies), time() + (86400 * 30), "/"); setcookie("comments", $comments, time() + (86400 * 30), "/"); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Form Submission Result</title> </head> <body> <h1>Form Submission Result</h1> <!-- Show Errors if any --> <?php if ($error_name) { echo "<p> <hr> <h3> Step 3: Viewing Cookie Data (view_cookie.php) </h3> <p>This file displays the cookie data stored on the user's browser.<br> </p> <pre class="brush:php;toolbar:false"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>View Cookie Data</title> </head> <body> <h1>View Stored Cookie Data</h1> <?php if (isset($_COOKIE['name'])) { echo "<p><strong>Name:</strong> " . $_COOKIE['name'] . "</p>"; echo "<p><strong>Age:</strong> " . $_COOKIE['age'] . "</p>"; echo "<p><strong>Email:</strong> " . $_COOKIE['email'] . "</p>"; echo "<p><strong>Website:</strong> <a href='" . $_COOKIE['website'] . "' target='_blank'>" . $_COOKIE['website'] . "</a></p>"; echo "<p><strong>Gender:</strong> " . $_COOKIE['gender'] . "</p>"; echo "<p><strong>Hobbies:</strong> " . $_COOKIE['hobbies'] . "</p>"; echo "<p><strong>Comments:</strong> " . $_COOKIE['comments'] . "</p>"; } else { echo "<p>No cookie data found!</p>"; } ?> <br><br> <a href="index.php">Go Back</a> </body> </html>
Step 4: Deleting Cookie Data (delete_cookie.php)
This file deletes the cookies by setting their expiration time to the past.
<?php // Deleting cookies by setting their expiration time to past setcookie("name", "", time() - 3600, "/"); setcookie("age", "", time() - 3600, "/"); setcookie("email", "", time() - 3600, "/"); setcookie("website", "", time() - 3600, "/"); setcookie("gender", "", time() - 3600, "/"); setcookie("hobbies", "", time() - 3600, "/"); setcookie("comments", "", time() - 3600, "/"); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Cookie Deleted</title> </head> <body> <h1>Cookies Deleted</h1> <p>All cookies have been deleted successfully.</p> <br><br> <a href="index.php">Go Back</a> </body> </html>
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! ?
The above is the detailed content of Beginners Guide to PHP Form Handling with Cookies. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

ToversionaPHP-basedAPIeffectively,useURL-basedversioningforclarityandeaseofrouting,separateversionedcodetoavoidconflicts,deprecateoldversionswithclearcommunication,andconsidercustomheadersonlywhennecessary.StartbyplacingtheversionintheURL(e.g.,/api/v

TosecurelyhandleauthenticationandauthorizationinPHP,followthesesteps:1.Alwayshashpasswordswithpassword_hash()andverifyusingpassword_verify(),usepreparedstatementstopreventSQLinjection,andstoreuserdatain$_SESSIONafterlogin.2.Implementrole-basedaccessc

Proceduralandobject-orientedprogramming(OOP)inPHPdiffersignificantlyinstructure,reusability,anddatahandling.1.Proceduralprogrammingusesfunctionsorganizedsequentially,suitableforsmallscripts.2.OOPorganizescodeintoclassesandobjects,modelingreal-worlden

PHPdoesnothaveabuilt-inWeakMapbutoffersWeakReferenceforsimilarfunctionality.1.WeakReferenceallowsholdingreferenceswithoutpreventinggarbagecollection.2.Itisusefulforcaching,eventlisteners,andmetadatawithoutaffectingobjectlifecycles.3.YoucansimulateaWe

To safely handle file uploads in PHP, the core is to verify file types, rename files, and restrict permissions. 1. Use finfo_file() to check the real MIME type, and only specific types such as image/jpeg are allowed; 2. Use uniqid() to generate random file names and store them in non-Web root directory; 3. Limit file size through php.ini and HTML forms, and set directory permissions to 0755; 4. Use ClamAV to scan malware to enhance security. These steps effectively prevent security vulnerabilities and ensure that the file upload process is safe and reliable.

In PHP, the main difference between == and == is the strictness of type checking. ==Type conversion will be performed before comparison, for example, 5=="5" returns true, and ===Request that the value and type are the same before true will be returned, for example, 5==="5" returns false. In usage scenarios, === is more secure and should be used first, and == is only used when type conversion is required.

Yes, PHP can interact with NoSQL databases like MongoDB and Redis through specific extensions or libraries. First, use the MongoDBPHP driver (installed through PECL or Composer) to create client instances and operate databases and collections, supporting insertion, query, aggregation and other operations; second, use the Predis library or phpredis extension to connect to Redis, perform key-value settings and acquisitions, and recommend phpredis for high-performance scenarios, while Predis is convenient for rapid deployment; both are suitable for production environments and are well-documented.

The methods of using basic mathematical operations in PHP are as follows: 1. Addition signs support integers and floating-point numbers, and can also be used for variables. String numbers will be automatically converted but not recommended to dependencies; 2. Subtraction signs use - signs, variables are the same, and type conversion is also applicable; 3. Multiplication signs use * signs, which are suitable for numbers and similar strings; 4. Division uses / signs, which need to avoid dividing by zero, and note that the result may be floating-point numbers; 5. Taking the modulus signs can be used to judge odd and even numbers, and when processing negative numbers, the remainder signs are consistent with the dividend. The key to using these operators correctly is to ensure that the data types are clear and the boundary situation is handled well.
