Pem��amatan Form PHP
Hai teman-teman pemula pengembang PHP! Hari ini, kita akan melihat dunia yang menarik dari pem��amatan form. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk mengarahkan Anda melalui aspek penting ini dari pengembangan web. Percayalah, menguasai pem验amatan form adalah seperti belajar menunggang sepeda - sekali Anda mendapatkannya, Anda tidak akan pernah lupa!
Mengapa Pem��amatan Form Penting
Sebelum kita masuk ke kode, mari bicarakan mengapa pem验amatan form sangat penting. Bayangkan Anda menjalankan layanan pengiriman pizza secara online. Jika seseorang memesan 'ABC' pizza atau memasukkan '-5' sebagai nomor teleponnya, Anda pasti akan berada dalam masalah! Itu di mana pem验amatan form datang untuk menyelamatkan, memastikan bahwa data yang Anda terima benar dan dapat digunakan.
Pem��amatan Client-side vs. Server-side
Dalam dunia pem验amatan form, kita memiliki dua pemain utama: pem验amatan client-side dan server-side. Hari ini, kita akan fokus pada pem验amatan server-side menggunakan PHP, tetapi mari kita singkatkan kedua-duanya:
Pem验amatan Client-side
Pem验amatan client-side terjadi di browser pengguna sebelum data dikirim ke server. Itu cepat dan memberikan umpan balik instan, tetapi dapat dihindari oleh pengguna yang berahmat.
Pem验amatan Server-side
Pem验amatan server-side terjadi di server setelah form dikirim. Itu lebih aman dan dapat dipercaya, karena pengguna tidak dapat merusaknya. Ini adalah apa yang kita akan jelajahi dalam depth hari ini.
Memulai dengan Pem验amatan Form PHP
Mari kita mulai dengan form sederhana dan bangun pem验amatan per langkah. Ini adalah form HTML dasar kami:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Nama: <input type="text" name="name"><br>
Umur: <input type="text" name="age"><br>
<input type="submit" name="submit" value="Kirim">
</form>
Sekarang, mari kita tambahkan sedikit magi PHP untuk memvalidasi form ini!
Fungsi Pem验amatan
Sebelum kita masuk ke pem验amatan khusus, mari kita buat beberapa fungsi bantu:
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
Fungsi test_input()
ini melakukan tiga hal penting:
-
trim()
menghapus spasi di kedua sisi string -
stripslashes()
menghapus backslash -
htmlspecialchars()
mengkonversi karakter khusus ke entitas HTML
Langkah ini membantu mencegah penyebaran kode jahat dan memastikan data kami bersih.
Form Kosong
Mari kita mulai dengan pemeriksaan dasar: apakah form kosong? Ini adalah cara kita bisa melakukan itu:
<?php
$name = $age = "";
$nameErr = $ageErr = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Nama diperlukan";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["age"])) {
$ageErr = "Umur diperlukan";
} else {
$age = test_input($_POST["age"]);
}
}
?>
Dalam kode ini:
- Kita inisialisasi variabel untuk menyimpan data form dan pesan kesalahan.
- Kita memeriksa apakah form dikirim menggunakan POST.
- Untuk setiap field, kita memeriksa apakah itu kosong. Jika ya, kita menyetel pesan kesalahan. Jika tidak, kita membersihkan input menggunakan fungsi
test_input()
.
Field Umur bukan Angka
Sekarang, mari kita tambahkan pemeriksaan khusus untuk field umur untuk memastikan itu adalah angka:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// ... pemeriksaan sebelumnya ...
if (empty($_POST["age"])) {
$ageErr = "Umur diperlukan";
} else {
$age = test_input($_POST["age"]);
if (!is_numeric($age)) {
$ageErr = "Umur harus berupa angka";
}
}
}
Di sini, kita menambahkan pemeriksaan ekstra menggunakan is_numeric()
untuk memastikan umur adalah sebenarnya angka. Jika bukan, kita menyetel pesan kesalahan yang sesuai.
Menyusun Semua
Sekarang, mari kita lihat bagaimana skrip pem验amatan form lengkap kami tampak:
<?php
$name = $age = "";
$nameErr = $ageErr = "";
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Nama diperlukan";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["age"])) {
$ageErr = "Umur diperlukan";
} else {
$age = test_input($_POST["age"]);
if (!is_numeric($age)) {
$ageErr = "Umur harus berupa angka";
}
}
}
?>
<h2>Contoh Pem验amatan Form PHP</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Nama: <input type="text" name="name">
<span class="error"><?php echo $nameErr;?></span>
<br><br>
Umur: <input type="text" name="age">
<span class="error"><?php echo $ageErr;?></span>
<br><br>
<input type="submit" name="submit" value="Kirim">
</form>
<?php
echo "<h2>Data Anda:</h2>";
echo $name;
echo "<br>";
echo $age;
?>
Skrip ini:
- Definisikan variabel dan fungsi
- Memvalidasi form saat dikirim
- Menampilkan form dengan pesan kesalahan jika ada
- Menampilkan input yang divalidasi
Tabel Metode Pem验amatan
Ini adalah tabel praktis dari metode pem验amatan umum dalam PHP:
Metode | Deskripsi | Contoh |
---|---|---|
empty() | Memeriksa apakah variabel kosong | if (empty($var)) |
isset() | Memeriksa apakah variabel diatur dan bukan NULL | if (isset($var)) |
is_numeric() | Memeriksa apakah variabel adalah angka atau string numerik | if (is_numeric($var)) |
strlen() | Mendapatkan panjang string | if (strlen($var) > 5) |
preg_match() | Melakukan pencocokan ekspresi regular | if (preg_match("/pattern/", $var)) |
filter_var() | Memfilter variabel dengan filter yang ditentukan | if (filter_var($var, FILTER_VALIDATE_EMAIL)) |
Ingat, pem验amatan form adalah tentang memastikan integritas data dan meningkatkan pengalaman pengguna. Itu seperti menjadi penjaga gerbang di klub - Anda ingin membolehkan data yang bagus masuk dan menjaga data yang buruk keluar!
Saat kita mengakhiri, saya harap tutorial ini telah memberikan Anda dasar kuat dalam pem验amatan form PHP. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba berbagai form dan teknik pem验amatan. Sebelum Anda tahu, Anda akan memvalidasi form seperti seorang pro!
Selamat coding, dan semoga form Anda selalu valid!
Credits: Image by storyset