dengan cekap membersihkan dan mengesahkan input pengguna, menghalang isu -isu ini. filter_var
memanfaatkan fungsi php
filter_var
memudahkan proses. Sintaksinya ialah: filter_var
filter_var( mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0 ): mixed
$value
$filter
, FILTER_SANITIZE_EMAIL
). FILTER_VALIDATE_INT
$options
kegagalan penapis. FALSE
filter_var
sanitisasi e -mel:
Penapis
FILTER_SANITIZE_EMAIL
$email = "test\"';DROP TABLE users;--@example.com"; $sanitizedEmail = filter_var($email, FILTER_SANITIZE_EMAIL); echo $sanitizedEmail; // Outputs: test@example.com (malicious script removed)
Begitu juga, membersihkan URL watak berbahaya:
FILTER_SANITIZE_URL
Mengesahkan data dengan
$url = "http://example.com/?param=<🎜>"; $sanitizedUrl = filter_var($url, FILTER_SANITIZE_URL); echo $sanitizedUrl; // Outputs: http://example.com/?param= (script removed)
filter_var
Pengesahan alamat IP: Pengesahan Integer:
$ip = "127.0.0.1"; if (filter_var($ip, FILTER_VALIDATE_IP)) { // Valid IP address } else { // Invalid IP address }
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.
$foo = "123"; if (filter_var($foo, FILTER_VALIDATE_INT)) { // Valid integer } else { // Invalid integer }
Langkah 2: Pengendalian Borang Pengendalian (Form-Mail.php):
<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>
(nota: Logik pengesahan dan sanitisasi lengkap dari contoh asal hendaklah dimasukkan ke dalam blok dalam
.)<?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; } } ?>
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!