> 백엔드 개발 > PHP 튜토리얼 > 쿠키를 사용한 PHP 양식 처리 초보자 가이드

쿠키를 사용한 PHP 양식 처리 초보자 가이드

DDD
풀어 주다: 2024-12-01 03:13:17
원래의
886명이 탐색했습니다.

Beginner

이 가이드에서는 쿠키를 사용하여 사용자 데이터를 저장하는 PHP 양식 처리를 살펴보겠습니다. 쿠키는 사용자의 브라우저에 소량의 데이터를 유지하여 여러 세션에 걸쳐 사용자 기본 설정이나 정보를 기억할 수 있게 하는 방법입니다.

저희 프로젝트에는 사용자가 자신의 정보를 입력할 수 있는 양식을 만들고, 제출된 데이터를 쿠키에 저장한 다음, 쿠키 데이터를 보거나 삭제하는 작업이 포함됩니다. 이 튜토리얼을 마치면 PHP에서 쿠키를 설정, 검색 및 삭제하는 방법을 이해하게 될 것입니다.


쿠키란 무엇입니까?

쿠키는 이용자의 브라우저에 저장되는 작은 파일입니다. 이를 통해 웹 서버는 사용자와 관련된 데이터를 저장하고 후속 방문 시 이를 검색할 수 있습니다. PHP에서는 setcookie() 함수를 사용하여 쿠키를 생성하거나 업데이트하고 $_COOKIE 슈퍼전역을 사용하여 쿠키를 읽을 수 있습니다.


프로젝트: 쿠키 처리 기능이 있는 PHP 양식

다음과 같은 간단한 애플리케이션을 만들어 보겠습니다.

  1. 사용자가 양식을 통해 정보를 제출할 수 있습니다.
  2. 제출된 데이터를 쿠키에 저장합니다.
  3. 저장된 쿠키 데이터를 표시합니다.
  4. 쿠키 삭제 옵션을 제공합니다.

파일 구조

저희 프로젝트에는 다음 파일이 포함되어 있습니다.

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
로그인 후 복사

1단계: 양식 만들기(index.php)

index.php 파일에는 쿠키 데이터를 보거나 삭제할 수 있는 버튼과 함께 사용자 입력을 위한 HTML 양식이 포함되어 있습니다.

<!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>
로그인 후 복사

4단계: 쿠키 데이터 삭제(delete_cookie.php)

이 파일은 쿠키 만료 시간을 과거로 설정하여 쿠키를 삭제합니다.

<?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>
로그인 후 복사

결론

이 프로젝트는 PHP에서 양식 처리를 위해 쿠키를 사용하는 방법을 보여줍니다. 쿠키를 구현하면 사용자 데이터를 유지하고 웹 애플리케이션의 기능을 향상시킬 수 있습니다. 이 프로젝트를 실험하고 PHP의 쿠키에 대한 고급 사용 사례를 살펴보세요.

즐거운 코딩하세요! ?

위 내용은 쿠키를 사용한 PHP 양식 처리 초보자 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿