Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan fungsi terbina dalam PHP untuk memproses data borang?

Bagaimana untuk menggunakan fungsi terbina dalam PHP untuk memproses data borang?

WBOY
WBOYasal
2024-04-22 22:36:021015semak imbas

Fungsi terbina dalam PHP memproses data borang termasuk pengesahan, pembersihan dan pemprosesan keselamatan Langkah-langkah khusus adalah seperti berikut: sahkan sama ada data kosong atau ditetapkan (kosong(), isset()), alih keluar ruang rentetan dan jenis input penapis (. trim(), filter_input ()) Halang serangan keselamatan, seperti XSS, SQL injection (htmlspecialchars(), strip_tags(), mysqli_real_escape_string())

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

Bagaimana untuk menggunakan fungsi terbina dalam PHP untuk memproses data borang?

Pengenalan

PHP menyediakan beberapa fungsi terbina dalam untuk membantu memproses input pengguna yang diterima melalui borang. Fungsi ini boleh digunakan untuk mengesahkan, membersihkan dan mengendalikan data borang dengan selamat.

Sahkan dan bersihkan data borang

1 kosong() Fungsi**: Semak sama ada pembolehubah kosong (tanpa sebarang nilai). 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)";

🎜2 🎜isset() Fungsi**: Semak sama ada pembolehubah telah ditetapkan. 🎜rrreee🎜🎜3 🎜trim() Fungsi**: Alih keluar ruang daripada kedua-dua hujung rentetan. 🎜rrreee🎜🎜4. 🎜filter_input() Fungsi**: Tapis input mengikut jenis yang ditentukan. 🎜rrreee🎜🎜Proses data borang dengan selamat🎜🎜🎜🎜1 🎜htmlspecialchars() Fungsi**: Tukar aksara HTML kepada entiti untuk mengelakkan serangan XSS. 🎜rrreee🎜🎜2. 🎜strip_tags() Fungsi**: Mengalih keluar semua teg HTML dan PHP daripada rentetan. 🎜rrreee🎜🎜3. 🎜mysqli_real_escape_string() Fungsi**: Melarikan diri daripada aksara khas untuk menghalang serangan suntikan SQL (hanya untuk pangkalan data MySQL). 🎜rrreee🎜🎜Kes praktikal🎜🎜🎜Pertimbangkan borang PHP mudah untuk mengumpulkan nama pengguna dan umur: 🎜rrreee🎜Kami memproses data borang dalam process_form.php: 🎜rrreee

Atas ialah kandungan terperinci Bagaimana untuk menggunakan fungsi terbina dalam PHP untuk memproses data borang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn