ホームページ > バックエンド開発 > PHPチュートリアル > Cookie を使用した PHP フォーム処理の初心者ガイド

Cookie を使用した PHP フォーム処理の初心者ガイド

DDD
リリース: 2024-12-01 03:13:17
オリジナル
885 人が閲覧しました

Beginner

このガイドでは、Cookie を使用してユーザー データを保存する PHP フォーム処理について説明します。 Cookie は、ユーザーのブラウザ上に少量のデータを保持する方法であり、異なるセッションにわたってユーザーの設定や情報を記憶できるようにします。

私たちのプロジェクトには、ユーザーが情報を入力できるフォームの作成、送信されたデータの Cookie への保存、その後の Cookie データの表示または削除が含まれます。このチュートリアルを終えると、PHP で Cookie を設定、取得、削除する方法が理解できるようになります。


クッキーとは何ですか?

Cookie はユーザーのブラウザに保存される小さなファイルです。これにより、Web サーバーがユーザー固有のデータを保存し、その後のアクセス時にそのデータを取得できるようになります。 PHP では、setcookie() 関数を使用して Cookie を作成または更新し、$_COOKIE スーパーグローバルを使用してそれらを読み取ることで、Cookie を操作できます。


プロジェクト: Cookie を処理する PHP フォーム

次のような簡単なアプリケーションを作成します。

  1. ユーザーがフォーム経由で情報を送信できるようにします。
  2. 送信されたデータを Cookie に保存します。
  3. 保存されている Cookie データを表示します。
  4. Cookie を削除するオプションを提供します。

ファイル構造

私たちのプロジェクトには次のファイルが含まれています:

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 フォームと、Cookie データを表示または削除するためのボタンが含まれています。

<!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: Cookie データの削除 (delete_cookie.php)

このファイルは、Cookie の有効期限を過去に設定することで Cookie を削除します。

<?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 でのフォーム処理に Cookie を使用する方法を示します。 Cookie を実装すると、ユーザー データを保持し、Web アプリケーションの機能を向上させることができます。このプロジェクトを試して、PHP での Cookie のより高度な使用例を検討してください。

コーディングを楽しんでください! ?

以上がCookie を使用した PHP フォーム処理の初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート