Rumah >pembangunan bahagian belakang >tutorial php >Panduan Pemula untuk Pengendalian Borang PHP dengan Kuki

Panduan Pemula untuk Pengendalian Borang PHP dengan Kuki

DDD
DDDasal
2024-12-01 03:13:17876semak imbas

Beginner

Dalam panduan ini, kami akan meneroka pengendalian borang PHP menggunakan kuki untuk menyimpan data pengguna. Kuki ialah satu cara untuk mengekalkan sejumlah kecil data pada penyemak imbas pengguna, menjadikannya mungkin untuk mengingati pilihan atau maklumat pengguna merentas sesi yang berbeza.

Projek kami melibatkan penciptaan borang di mana pengguna boleh memasukkan maklumat mereka, menyimpan data yang diserahkan dalam kuki, dan kemudian melihat atau memadam data kuki. Pada penghujung tutorial ini, anda akan memahami cara menetapkan, mendapatkan semula dan memadamkan kuki dalam PHP.


Apakah Kuki?

Kuki ialah fail kecil yang disimpan pada penyemak imbas pengguna. Mereka membenarkan pelayan web menyimpan data khusus kepada pengguna dan mendapatkannya semula pada lawatan berikutnya. Dalam PHP, anda boleh bekerja dengan kuki menggunakan fungsi setcookie() untuk mencipta atau mengemas kini kuki dan superglobal $_COOKIE untuk membacanya.


Projek: Borang PHP dengan Pengendalian Kuki

Kami akan mencipta aplikasi mudah yang:

  1. Membenarkan pengguna menyerahkan maklumat mereka melalui borang.
  2. Menyimpan data yang diserahkan dalam kuki.
  3. Memaparkan data kuki yang disimpan.
  4. Menyediakan pilihan untuk memadamkan kuki.

Struktur Fail

Projek kami termasuk fail berikut:

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

Langkah 1: Mencipta Borang (index.php)

Fail index.php mengandungi borang HTML untuk input pengguna, bersama-sama dengan butang untuk melihat atau memadam data kuki.

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

Langkah 4: Memadam Data Kuki (delete_cookie.php)

Fail ini memadamkan kuki dengan menetapkan masa tamat tempohnya kepada masa lalu.

<?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>

Kesimpulan

Projek ini menunjukkan cara menggunakan kuki untuk pengendalian borang dalam PHP. Dengan melaksanakan kuki, anda boleh mengekalkan data pengguna dan meningkatkan kefungsian aplikasi web anda. Eksperimen dengan projek ini dan terokai lebih banyak kes penggunaan lanjutan untuk kuki dalam PHP.

Selamat pengekodan! ?

Atas ialah kandungan terperinci Panduan Pemula untuk Pengendalian Borang PHP dengan Kuki. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn