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)";
登錄后復制






