ホームページ >バックエンド開発 >PHPチュートリアル >セッションを使用した PHP フォーム処理の初心者ガイド
PHP を初めて使用し、フォームの処理方法やセッション データの操作方法を学びたい場合は、このガイドが最適です。ユーザーがフォームを送信し、データをセッションに保存し、表示し、後で削除できる単純なプロジェクトを構築します。このチュートリアルを終えるまでに、PHP フォームの処理、検証、サニタイズ、セッションの基本を理解できるようになります。
フォーム処理とは、HTML フォームを通じて送信されたデータを取得し、PHP などのサーバー側言語で処理するプロセスを指します。これには以下が含まれます:
セッションは、単一ユーザーの複数のページにわたって情報 (変数) を保存する方法です。 Cookie とは異なり、セッション データはサーバーに保存されるため、より安全になります。 PHP でセッションの使用を開始するには、session_start() 関数を使用します。
私たちのプロジェクトには次の機能が含まれます:
プロジェクトの構造は次のとおりです:
project-folder/ │ ├── index.php # Form page ├── submit.php # Form handling and session storage ├── view_session.php # Viewing session data ├── delete_session.php # Deleting session data
index.php ファイルには、ユーザーが詳細を入力できる単純な HTML フォームが含まれています。コードは次のとおりです:
<?php session_start(); ?> <!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 Session 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>This file processes the submitted form data, validates it, and stores it in a session. Here's the code:<br> </p> <pre class="brush:php;toolbar:false"><?php session_start(); // 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'] : 'No gender selected.'; $hobbies = isset($_GET['hobbies']) ? $_GET['hobbies'] : ['No hobby selected.']; $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, store data in session if (empty($error_name) && empty($error_age) && empty($error_email) && empty($error_website)) { // Store data in session $_SESSION['name'] = $name; $_SESSION['age'] = $age; $_SESSION['email'] = $email; $_SESSION['website'] = $website; $_SESSION['gender'] = $gender; $_SESSION['hobbies'] = implode(", ", $hobbies); $_SESSION['comments'] = $comments; } } ?> <!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 Session Data (view_session.php) </h3> <p>This file displays session data stored on the server.<br> </p> <pre class="brush:php;toolbar:false"><?php session_start(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>View Session Data</title> </head> <body> <h1>View Stored Session Data</h1> <?php if (isset($_SESSION['name'])) { echo "<p><strong>Name:</strong> " . $_SESSION['name'] . "</p>"; echo "<p><strong>Age:</strong> " . $_SESSION['age'] . "</p>"; echo "<p><strong>Email:</strong> " . $_SESSION['email'] . "</p>"; echo "<p><strong>Website:</strong> <a href='" . $_SESSION['website'] . "' target='_blank'>" . $_SESSION['website'] . "</a></p>"; echo "<p><strong>Gender:</strong> " . $_SESSION['gender'] . "</p>"; echo "<p><strong>Hobbies:</strong> " . $_SESSION['hobbies'] . "</p>"; echo "<p><strong>Comments:</strong> " . $_SESSION['comments'] . "</p>"; } else { echo "<p>No session data found!</p>"; } ?> <br><br> <a href="index.php">Go Back</a> </body> </html>
このファイルはセッション データを破壊します。
<?php session_start(); session_unset(); // Remove all session variables session_destroy(); // Destroy the session ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Session Deleted</title> </head> <body> <h1>Session Data Deleted</h1> <p>All session data has been deleted successfully.</p> <br><br> <a href="index.php">Go Back</a> </body> </html>
フォーム処理:
セッション:
$_SESSION 配列。
このプロジェクトは、PHP フォーム処理とセッション管理の基本を示します。これらの概念を使用すると、ユーザー入力を安全かつ効率的に処理する、より複雑なアプリケーションを構築できます。コードを試し、データベース統合やより高度な検証などの機能を追加してコードを拡張してみてください。
コーディングを楽しんでください! ?
以上がセッションを使用した PHP フォーム処理の初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。