PHP 5 Form Validasi

I.Latar Belakang.
pengenalan, pemahaman php, dan penerapan php pada suatu program.

II.Alat dan Bahan.
  Laptop / PC
  W3SCHOOLS
  Sublime Text

III.Tujuan.
 mengetahui apa itu php, dan pembuatan suatu program dengan fungsi php agar lebih dinamis.

IV.Penjelasan.  

PHP 5 Form Validasi
Ini dan bab-bab berikutnya menunjukkan bagaimana menggunakan PHP untuk memvalidasi data formulir.

PHP Form ValidasiCatatan Pikirkan KEAMANAN saat memproses bentuk PHP!
Halaman ini akan menunjukkan cara untuk memproses bentuk PHP dengan keamanan dalam pikiran. validasi yang tepat dari bentuk data penting untuk melindungi formulir Anda dari hacker dan spammer!

Bentuk HTML kita akan bekerja di dalam bab-bab ini, berisi berbagai bidang masukan: diperlukan dan bidang opsional teks, tombol radio, dan sebuah tombol submit:

Aturan validasi untuk formulir di atas adalah sebagai berikut:
  • Bidang Aturan Validasi
  • Nama (wajib. + Harus hanya berisi huruf dan spasi
  • E-mail yang dibutuhkan. + Harus berisi alamat email yang valid (dengan @ dan.)
  • Situs Opsional. Jika ada, itu harus berisi URL yang valid
  • Komentar Opsional. bidang input multi-line (textarea)
  • Jenis kelamin Diperlukan. Harus pilih salah satu

Pertama kita akan melihat kode HTML untuk form:

Fields teks
Nama, email, dan bidang situs adalah elemen input teks, dan kolom komentar adalah textarea. Kode HTML terlihat seperti ini:

Nama: <input type = "text" name = "nama">
E-mail: <input type = "text" name = "email">
Website: <input type = "text" name = "situs">
Komentar: <textarea name = "comment" baris = "5" cols = "40"> </ textarea>


Tombol radio

Bidang gender tombol radio dan kode HTML terlihat seperti ini:
Jenis kelamin:

<Input type = "radio" name = "jenis kelamin" value = "perempuan"> Perempuan
<Input type = "radio" name = "jenis kelamin" value = "laki-laki"> Pria


Formulir Element
Kode HTML formulir terlihat seperti ini:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Ketika formulir dikirimkan, data formulir dikirim dengan metode = "post".
Catatan Apa $ _SERVER [ "PHP_SELF"] variabel?
 $ _SERVER [ "PHP_SELF"] adalah variabel global super yang mengembalikan nama file dari script saat ini mengeksekusi.

Jadi, $ _SERVER [ "PHP_SELF"] mengirimkan data formulir diserahkan ke halaman itu sendiri, bukannya melompat ke halaman yang berbeda. Dengan cara ini, pengguna akan mendapatkan pesan error pada halaman yang sama seperti formulir.

Catatan Apa htmlspecialchars () function?

htmlspecialchars () fungsi mengkonversi karakter khusus untuk entitas HTML. Ini berarti bahwa hal itu akan menggantikan karakter HTML seperti <dan> dengan & lt; dan & gt ;. Hal ini mencegah penyerang dari mengeksploitasi kode dengan menyuntikkan HTML atau kode Javascript (serangan Scripting Cross-site) dalam bentuk.

Catatan tentang PHP Form Keamanan
$ _SERVER [ "PHP_SELF"] variabel dapat digunakan oleh hacker!

Jika PHP_SELF digunakan dalam halaman Anda maka pengguna dapat memasukkan garis miring (/) dan kemudian beberapa Cross Site Scripting (XSS) perintah untuk mengeksekusi.

Catatan Cross-site scripting (XSS) adalah jenis kerentanan keamanan komputer biasanya ditemukan dalam aplikasi Web. XSS memungkinkan penyerang untuk menyuntikkan script sisi klien ke dalam halaman Web dilihat oleh pengguna lain.

Asumsikan kita memiliki bentuk berikut di halaman bernama "test_form.php":
<Form method = "post" action = "<php ​​echo $ _SERVER? [" PHP_SELF "];?>">
Sekarang, jika pengguna memasukkan URL normal pada address bar seperti "http://www.example.com/test_form.php", kode di atas akan diterjemahkan ke:
<Form method = "post" action = "test_form.php">Sejauh ini bagus.

Namun, mempertimbangkan bahwa pengguna memasukkan URL berikut di address bar:

http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E
Dalam hal ini, kode di atas akan diterjemahkan ke:

<Form method = "post" action = "test_form.php /"> <script> alert ( 'hack') </ script>
Kode ini menambahkan tag script dan perintah peringatan. Dan ketika beban halaman, kode JavaScript akan dieksekusi (pengguna akan melihat kotak peringatan). Ini hanya contoh sederhana dan tidak berbahaya bagaimana variabel PHP_SELF dapat dimanfaatkan.

Menyadari bahwa kode JavaScript dapat ditambahkan dalam tag <script>! Seorang hacker dapat mengarahkan pengguna ke file di server lain, dan file yang dapat menyimpan kode berbahaya yang dapat mengubah variabel global atau menyerahkan formulir ke alamat lain untuk menyimpan data pengguna, misalnya.

Cara Hindari $ _SERVER [ "PHP_SELF"] Eksploitasi?
$ _SERVER [ "PHP_SELF"] eksploitasi dapat dihindari dengan menggunakan () fungsi htmlspecialchars.

Kode bentuk akan terlihat seperti ini:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

htmlspecialchars () fungsi mengkonversi karakter khusus untuk entitas HTML. Sekarang jika pengguna mencoba untuk mengeksploitasi variabel PHP_SELF, itu akan menghasilkan output sebagai berikut:

<form method="post" action="test_form.php/&quot;&gt;&lt;script&gt;alert('hacked')&lt;/script&gt;">

Mengeksploitasi upaya gagal, dan tidak ada salahnya dilakukan!

Validasi Form Data Dengan PHP
Hal pertama yang akan kita lakukan adalah untuk lulus semua variabel melalui htmlspecialchars PHP () fungsi.

Ketika kita menggunakan htmlspecialchars () fungsi; maka jika pengguna mencoba untuk menyerahkan berikut dalam kolom teks:

<Script> location.href ( 'http://www.hacked.com') </ script>
- ini tidak akan dieksekusi, karena itu akan disimpan sebagai HTML lolos kode, seperti ini:

& Lt; script yang & gt; location.href ( 'http://www.hacked.com') & lt; / script & gt;

Kode ini sekarang aman untuk ditampilkan pada halaman atau di dalam e-mail.

Kami juga akan melakukan dua hal lebih ketika pengguna menyerahkan formulir:
  1.     Jalur karakter yang tidak perlu (extra space, tab, baris baru) dari data input pengguna (dengan fungsi PHP lis ())
  2.     Hapus backslashes (\) dari data input pengguna (dengan stripslashes PHP () fungsi)
Langkah selanjutnya adalah membuat fungsi yang akan melakukan semua pengecekan untuk kita (yang jauh lebih nyaman daripada menulis kode yang sama berulang-ulang).

Kami akan masukan nama fungsi test_input ().
Sekarang, kita dapat memeriksa setiap variabel $ _POST dengan fungsi test_input (), dan script terlihat seperti ini:
Contoh

<?php
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $name = test_input($_POST["name"]);
  $email = test_input($_POST["email"]);
  $website = test_input($_POST["website"]);
  $comment = test_input($_POST["comment"]);
  $gender = test_input($_POST["gender"]);
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

Perhatikan bahwa pada awal script, kita memeriksa apakah formulir telah disampaikan menggunakan $ _SERVER [ "REQUEST_METHOD"]. Jika REQUEST_METHOD adalah POST, maka formulir telah disampaikan - dan itu harus divalidasi. Jika belum diajukan, melewatkan validasi dan menampilkan formulir kosong.

Namun, dalam contoh di atas, semua bidang input adalah opsional. Script bekerja dengan baik bahkan jika pengguna tidak memasukkan data apapun.

Langkah selanjutnya adalah membuat field input yang dibutuhkan dan membuat pesan kesalahan jika diperlukan.


Contoh :


Maka outputnya :


V.Kesimpulan.kita bisa tahu apa itu php, pengertian dan contoh php dalam pembuatan suatu program.

VI.Refrensi.
   w3schools_offline2016/php

Komentar

Postingan Populer