Web アプリケーションを構築する場合、ユーザーがデータを入力できるフォームを使用するのが一般的です。 PHP では、フォームの送信を処理し、ユーザー データを処理できます。 この記事では、PHP でフォームとユーザー データを処理する方法を説明します。
HTMLフォームの作成
HTML フォームを作成するには、、 、 など <form> のさまざまな入力要素とともに タグを 使用します 。 簡単なフォームの例を次に示します。 <input> <select> <textarea>
<form method="POST" action="process.php">
<label for="name">Name:</label>
<input type="text" id="name" name="name">
<label for="email">Email:</label>
<input type="email" id="email" name="email">
<input type="submit" value="Submit">
</form>
上の例では、名前と電子メールの 2 つの入力フィールドを持つフォームがあります。 フォームの method 属性は「POST」に設定され、 action 属性はフォーム データの送信先となる URL を指定します。
フォーム送信の処理
PHP でフォームの送信を処理するには、送信されたデータを処理する別の PHP ファイルを作成する必要があります。 基本的なフォーム処理スクリプトの例を次に示します。
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = $_POST['name'];
$email = $_POST['email'];
// Perform validation and data processing here
// Redirect to a thank you page
header('Location: thankyou.php');
exit;
}
?>
上記のスクリプトでは、 $_POST スーパーグローバルを使用して、「POST」メソッド経由で送信されたフォーム データにアクセスします。 name それぞれの名前(この場合は) を使用して、フォーム フィールドの値を取得できます email。 その後、必要な検証とデータ処理を実行できます。
フォーム データを処理した後、ユーザーをサンキュー ページまたは別の適切なページにリダイレクトするのが一般的です。 この例では、関数を使用して header() リダイレクト ヘッダーをブラウザに送信します。
ユーザー入力の検証
ユーザー入力を検証することは、データの整合性とセキュリティを確保するために非常に重要です。 filter_var() PHP は、正規表現などの 入力検証のためのさまざまな関数と手法を提供します。 電子メール アドレスを検証する例を次に示します。
$email = $_POST['email'];
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Email is valid
} else {
// Invalid email
}
上の例では、フィルター filter_var() を備えた関数を使用して FILTER_VALIDATE_EMAIL 電子メール アドレスを検証します。 電子メールが有効な場合は、さらに処理を続行できます。 それ以外の場合は、エラーを適切に処理できます。
ユーザー入力のサニタイジング
ユーザー入力をサニタイズすると、SQL インジェクションやクロスサイト スクリプティング(XSS) などのセキュリティの脆弱性を防ぐことができます。 PHP は、サニタイズ用の関数 htmlspecialchars() やデータベース固有の関数を提供します。 ユーザー入力をサニタイズする例を次に示します。
$name = $_POST['name'];
$sanitizedName = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
// Use the sanitized name for further processing
上の例では、 htmlspecialchars() 関数を使用してユーザー指定の名前をサニタイズします。 この関数は特殊文字を HTML エンティティに変換し、潜在的な HTML またはスクリプト インジェクションを防ぎます。
結論として、フォームとユーザー データの処理は PHP Web 開発の重要な部分です。 HTML フォームの作成、フォーム送信の処理、ユーザー入力の検証、データのサニタイズにより、アプリケーションの整合性とセキュリティを確保できます。



