Rumah >pembangunan bahagian belakang >tutorial php >Membersihkan dan mengesahkan data dengan penapis PHP

Membersihkan dan mengesahkan data dengan penapis PHP

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2025-02-27 09:55:14135semak imbas

Sanitize and Validate Data With PHP Filters

Pengesahan data yang berkesan adalah penting untuk bentuk web yang selamat dan mantap. Data tidak sah boleh mewujudkan kelemahan keselamatan dan kerosakan laman web. Tutorial ini menunjukkan bagaimana fungsi PHP

dengan cekap membersihkan dan mengesahkan input pengguna, menghalang isu -isu ini. filter_var

mengapa sanitisasi data sering diabaikan

Ramai pemaju mencari pengesahan data membosankan, sering melibatkan:

    perbandingan lengkap terhadap setiap variasi input yang boleh dibayangkan.
  • membuat ekspresi biasa kompleks untuk mengendalikan semua kemungkinan.
  • atau gabungan kedua-duanya, yang membawa kepada kerja yang memakan masa dan kadar kesilapan yang tinggi.
Untungnya, PHP menawarkan penyelesaian yang diperkemas.

memanfaatkan fungsi php

filter_var

Fungsi PHP

memudahkan proses. Sintaksinya ialah: filter_var

<code class="language-php">filter_var( mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0 ): mixed</code>
  • : Data yang akan ditapis. $value
  • : ID penapis (mis., $filter, FILTER_SANITIZE_EMAIL). FILTER_VALIDATE_INT
  • : Parameter pilihan untuk penyesuaian penapis. Pulangan $options kegagalan penapis. FALSE
data sanitizing dengan

filter_var

sanitisasi e -mel:

Penapis membuang aksara haram dari alamat e -mel. Contohnya:

FILTER_SANITIZE_EMAIL

sanitisasi url:
<code class="language-php">$email = "test\"';DROP TABLE users;--@example.com";
$sanitizedEmail = filter_var($email, FILTER_SANITIZE_EMAIL);
echo $sanitizedEmail; // Outputs: test@example.com (malicious script removed)</code>

Begitu juga, membersihkan URL watak berbahaya:

FILTER_SANITIZE_URL Mengesahkan data dengan

<code class="language-php">$url = "http://example.com/?param=";
$sanitizedUrl = filter_var($url, FILTER_SANITIZE_URL);
echo $sanitizedUrl; // Outputs: http://example.com/?param= (script removed)</code>

filter_var Pengesahan alamat IP:

Pengesahan Integer:

<code class="language-php">$ip = "127.0.0.1";
if (filter_var($ip, FILTER_VALIDATE_IP)) {
  // Valid IP address
} else {
  // Invalid IP address
}</code>

Aplikasi Praktikal: Borang Penyerahan E -mel mari kita membina borang penyerahan e -mel yang mudah untuk menggambarkan sanitisasi data dan pengesahan. Borang mengumpul: Nama, e -mel, laman utama, dan mesej. Hanya data yang sah mencetuskan penyerahan e -mel.

<code class="language-php">$foo = "123";
if (filter_var($foo, FILTER_VALIDATE_INT)) {
  // Valid integer
} else {
  // Invalid integer
}</code>

Langkah 1: Membuat borang (form.html):

Langkah 2: Pengendalian Borang Pengendalian (Form-Mail.php):

<code class="language-html"><form method="post" action="form-email.php">
  Name: <input type="text" name="name"><br><br>
  Email Address: <input type="email" name="email"><br><br>
  Home Page: <input type="url" name="homepage"><br><br>
  Message: <textarea name="message"></textarea><br><br>
  <input type="submit" name="Submit" value="Send">
</form></code>

(nota: Logik pengesahan dan sanitisasi lengkap dari contoh asal hendaklah dimasukkan ke dalam blok dalam

.)
<code class="language-php"><?php
$errors = "";
if (isset($_POST['Submit'])) {
    // ... (Validation and sanitization logic as shown in original example) ...
    if (empty($errors)) {
        // Send email using mail() function with sanitized data
        echo "Thank you for your message!";
    } else {
        echo "Errors: <br>" . $errors;
    }
}
?></code>

Kesimpulan if (isset($_POST['Submit'])) form-email.php Tutorial ini menyediakan asas untuk menggunakan keupayaan penapisan data PHP. Walaupun tidak lengkap, ia mempamerkan kecekapan untuk pengendalian data yang selamat dan boleh dipercayai. Rujuk bahagian penapisan data manual PHP untuk teknik yang lebih canggih. Imej dihasilkan menggunakan Openai's Dall-E 2.

Atas ialah kandungan terperinci Membersihkan dan mengesahkan data dengan penapis PHP. 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