如何使用 PHP 內建函數處理表單資料?

WBOY
發布: 2024-04-22 22:36:02
原創
1063 人瀏覽過

PHP 內建函數處理表單資料包括驗證、清理和安全處理,具體步驟如下:驗證資料是否為空或已設定(empty()、isset())移除字串空格和過濾輸入類型(trim() 、filter_input())防範安全攻擊,如XSS、SQL 注入(htmlspecialchars()、strip_tags()、mysqli_real_escape_string())

如何使用 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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板