ホームページ >バックエンド開発 >PHPチュートリアル >PHP 組み込み関数を使用してフォーム データを処理するにはどうすればよいですか?

PHP 組み込み関数を使用してフォーム データを処理するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-04-22 22:36:021098ブラウズ

PHP 組み込み関数は、検証、クリーニング、セキュリティ処理などのフォーム データを処理します。具体的な手順は次のとおりです。データが空であるか設定されているか (empty()、isset()) を確認し、文字列スペースを削除し、入力をフィルターします。 XSS、SQL インジェクション (htmlspecialchars()、strip_tags()、mysqli_real_escape_string()) などのセキュリティ攻撃を防ぐタイプ (trim() 、 filter_input())

如何使用 PHP 内置函数处理表单数据?

PHP 組み込み関数を使用してフォーム データを処理するにはどうすればよいですか?

はじめに

PHP には、フォームを通じて受け取ったユーザー入力の処理を支援するいくつかの組み込み関数が用意されています。これらの関数を使用すると、フォーム データを検証、サニタイズし、安全に処理できます。

フォーム データの検証とクリーンアップ

1. empty() 関数**: 変数が空かどうかを確認します。 (値はありません)。

if (!empty($_POST['name'])) {
    // 用户已提交数据
}

2. isset() 関数**: 変数が設定されているかどうかを確認します。

if (isset($_POST['gender'])) {
    // 用户已选择性别
}

3. trim() 関数**: 文字列の両端からスペースを削除します。

$name = trim($_POST['name']);

4. filter_input() 関数**: 指定されたタイプに従って入力をフィルターします。

$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);

フォーム データを安全に処理する

1. htmlspecialchars() 関数**: HTML 文字をエンティティに変換します。 XSS 攻撃を防ぐため。

$comment = htmlspecialchars($_POST['comment']);

2. strip_tags() 関数**: 文字列からすべての HTML タグと PHP タグを削除します。

$description = strip_tags($_POST['description']);

3. mysqli_real_escape_string() 関数**: SQL インジェクション攻撃を防ぐために特殊文字をエスケープします (MySQL データベースのみ)。

$name = mysqli_real_escape_string($conn, $_POST['name']);

実際的なケース

ユーザー名と年齢を収集する単純な PHP フォームを考えてみましょう:

<form action="process_form.php" method="post">
  <label for="name">姓名:</label>
  <input type="text" name="name" id="name">
  <br>
  <label for="age">年龄:</label>
  <input type="number" name="age" id="age">
  <br>
  <input type="submit" value="提交">
</form>

ここでは process_form フォームを処理しています。 phpのデータ:

<?php
// 验证姓名不为空
if (empty($_POST['name'])) {
    echo "请输入您的姓名";
    exit;
}

// 验证年龄已设置
if (!isset($_POST['age'])) {
    echo "请输入您的年龄";
    exit;
}

// 验证年龄为整数
if (!filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT)) {
    echo "年龄必须为整数";
    exit;
}

// 安全处理姓名和年龄
$name = htmlspecialchars(trim($_POST['name']));
$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);

// 将数据插入数据库(省略,仅用于示例)
$sql = "INSERT INTO users (name, age) VALUES ('$name', $age)";

以上がPHP 組み込み関数を使用してフォーム データを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。