PHP 內建函數處理表單資料包括驗證、清理和安全處理,具體步驟如下:驗證資料是否為空或已設定(empty()、isset())移除字串空格和過濾輸入類型(trim() 、filter_input())防範安全攻擊,如XSS、SQL 注入(htmlspecialchars()、strip_tags()、mysqli_real_escape_string())
#如何使用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中文網其他相關文章!