Validasi formulir dengan PHP untuk menjaga inputan yang dikirim sesuai dengan yang kita inginkan


validasi formulir didalam pemrograman php

Daftar isi yang akan dibahas

  1. pengertian validasi formulir
  2. manfaat validasi formulir
  3. jenis validasi yang sering digunakan
  4. fungsi-fungsi validasi yang sering digunakan di php
  5. contoh validasi formulir 1



1. Pengertian Validasi Formulir

Validasi fomulir terdiri dari 2 kata yaitu validasi dan formulir

  1. validasi adalah pengujian atau pengesahan atas suatu kebenaran atas sesuatu.
  2. formulir adalah daftar isian atau inputan yang berisi pertanyaan
jadi, validasi formulir adalah suatu pengujian atas suatu kebenaran dari suatu inputan yang diisi oleh user atau pengguna supaya data yang dikirim sesuai dengan apa yang kita inginkan.

validasi formulir ini sangat diperlukan dalam pembuatan web, karena data yang diinputkan user bisa apa saja baik benar atau salah, bisa data biasa-biasa saja atau mungkin bisa data yang sangat berbahaya yang bisa merusak website kita. oleh karena masalah-masalah yang akan terjadi maka diperlukan validasi pada formulir yang kita buat supaya data yang diinputkan pengguna sesuai dengan apa yang kita inginkan.

2. Manfaat Validasi Formulir

Ada beberapa manfaat jika formulir yang kita buat memiliki validasi diantaranya yaitu:

a. terhindar dari kesalahan memasukan data

dengan adanya validasi maka potensi terjadinya kesalahan dalam memasukan data dapat diminimalisir. hal ini dapat kita lakukan dengan cara mengatur sistem supaya ketika data yang dimasukan tidak valid atau tidak sesuai dengan ketentuan yang ada, maka data akan ditolak supaya tidak masuk kedalam penyimpanan data.

b. mempermudah memasukan data

dengan adanya validasi maka akan mempermudah dalam proses memasukan data. hal ini dapat kita lakukan dengan cara memberikan pesan kesalahan pada pengunjung website ketika salah dalam penginputan data.

c. memberikan akurasi dan kelengkapan

dengan adanya validasi maka akan memberikan akurasi dalam pengisian data. data akan tepat sesuai dengan data yang diinginkan ketika akan disimpan kedalam database.

d. terhindar dari keisengan orang lain

dengan adanya validasi akan mengurangi tingkat keisengan seseorang dalam menginputkan data asal-asalan. selain itu dengan adanya validasi juga akan mengamankan website kita dari tindakan yang merusak website oleh orang lain yang mencoba melakukan hal-hal yang merugikan.

3. Jenis validasi yang sering digunakan

pada dasarnya validasi dibagi menjadi 2 jenis yaitu :
  1. Validasi di sisi client : validasi ini hanya berada di sisi brouser tidak ada pengecekan data kedalam database. tujuannya untuk validasi agar data inputan sesuai dengan tujuan form dibuat, sebelum dikirimkan ke server 
  2. Vaidasi disisi server : validasi ini melakukan pengecekan kedalam server sebelum data yang diinputkan dikirim ke database
untuk validasi data inputan ada beberapa prosedur yang harus dilewati. prosedur-prosedur pemeriksaan data tersebut pada umumnya bisa dilakukan satu kali pemeriksaan atau lebih sebelum data tersebut dikirimkan kedalam database. tujuannya supaya data yang dikirimkan akurat tidak asal-asalan. diantara prosedur tersebut yaitu dapat dilihat pada tabel dibawah ini.

Bentuk Validasi Penjelasan
1. pengecekan spasi awal dan akhir Jenis validasi ini dengan memvalidasi inputan pada formulir supaya tidak ada space kosong diawal dan akhir inputan yang dilakukan oleh user sebelum data dikirimkan kedalam database.
2. pengecekan tipe data  Jenis validasi ini memvalidasi inputan pada formulir supaya data yang diinputkan sesuai tipe datanya dengan data yang harus tersimpan. contohnya data angka atau data hanya boleh huruf tanpa angka.
3. pengecekan range (rentang) Janis validasi ini memvalidasi rentang inputan pada formulir. pada inputan ini hanya data yang sesuai dengan range yang sudah ditentukan yang bisa diinputkan. misal data minimal harus 9 karakter
4. pengecekan format data Jenis validasi ini memvalidasi inputan dengan format yang telah ditentukan. misal pada inputan email harus ada tanda @ atau pada tanggal harus tahun dulu - bulan - hari.
5. pengecekan uniq data Jenis validasi ini biasanya dilakukan di backand berkaitan dengan inputan yang tidak boleh sama dengan data yang didalam database. misalnya ketika registrasi nama user tidak boleh sama dengan user lainnya.
6. pengecekan input kosong Jenis validasi ini biasanya dilakukan untuk mengecek ada tidaknya inputan didalam formulir.


4.Fungsi-fungsi validasi yang sering digunakan didalam pemrograman php

fungsi-fungsi dibawah ini biasanya digunakan untuk validasi didalam formulir. fungsi-fungsi ini digunakan untuk mengecek data yang didapatkan dari formulir, berikut beberapa fungsi yang sering digunakan didalam validasi php.

type validasi contoh validasi
empty (variabel data) digunakan untuk memeriksa apakah variabelnya bernilai kosong atau tidak. hasil nilai dari empty yaitu berupa bilangan boolean (True jika ada data divariabelnya, false jika data divariabelnya kosong)
htmlspecialchar ( variabel data) digunakan untuk merubah (convert) sebuah nilai yang berupa karakter-karakter kedalam bentuk html. tujuan dari fungsi ini adalah untuk menghindari serangan XSS atau orang lain menginjek(memasukan) kode-kode atau script kedalam web yang kita buat.
stripslashes (data inputan) digunakan untuk menghapus atau menghilangkan karakter backslashes tanda garis miring terbalik ("\") menggunakan stripslashes() sehingga tidak mengganggu query mysql yang dikirim
trim (data inputan) digunakan untuk menghapus spasi atau karakter whitespace dari sebuah string. Karakter spasi yang akan dihapus bisa berada di awal maupun di akhir string.
preg_match ("",data inputan) mencari string dengan pola, mengembalikan true jika ada pola, dan false jika sebaliknya.
isset (data inputan) digunakan untuk mengecek apakah sebuah variabel telah tersedia (sudah didefenisikan) atau belum
file_exist (data inputan) digunakan untuk memeriksa apakah file atau direktori ada atau tidak
is_numeric (data inputan) digunakan untuk memeriksa apakah data berisi nomor atau tidak
filter_var (data inputan) digunakan untuk memvilter data

5. contoh valiadasi form php pertama

pada validasi pertama kita akan membuat sebuah validasi registrasi user dengan dengan ketentuan sebagai berikut.

  1. nama
  2. email
  3. website
  4. telp
  5. pesan
untuk ketentuan validasinya adalah sebagai berikut:

type validasi
nama 1. hilangkan spasi diawal dan akhir data inputan
2. hilangkan slash pada data diinputan
3. data inputan dilarang dalam bentuk script atau code
4. data inputan tidak boleh kosong
5. data inputan hanya boleh huruf dan spasi
email 1. hilangkan spasi diawal dan akhir data inputan
2. hilangkan slash pada data diinputan
3. data inputan dilarang dalam bentuk script atau code
4. data yang diinputkan harus ada @
5. data inputan tidak boleh kosong
website 1. hilangkan spasi diawal dan akhir data inputan
2. hilangkan slash pada data diinputan
3. data inputan dilarang dalam bentuk script atau code
4. data inputan tidak boleh kosong
5. data harus diisi dengan url web yang valid
telp 1. hilangkan spasi diawal dan akhir data inputan
2. hilangkan slash pada data diinputan
3. data inputan dilarang dalam bentuk script atau code
4. data inputan tidak boleh kosong
5. data inputan hanya boleh diinputkan angka
pesan 1. hilangkan spasi diawal dan akhir data inputan
2. hilangkan slash pada data diinputan
3. data inputan dilarang dalam bentuk script atau code
4. data inputan tidak boleh kosong


Untuk contoh codenya adalah sebagai berikut :

    
<!DOCTYPE HTML>  
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<style>
.warning {color: #FF0000;}
</style>
</head>
<body>  
 
<?php
//setting variabel untuk error nama, email, web, pesan dan tlp ke data null / data kosong
$error_nama = "";
$error_email = "";
$error_web = "";
$error_pesan = "";
$error_telp = "";

// set variabel nama , email, web , pesan dan tlp ke null
$nama = "";
$email = "";
$web = "";
$pesan = "";
$telp = "";
/* buat fungsi pengecekan input untuk
1. hilangkan semua spasi awal dan akhir
2. hilangkan semua slash yang bisa mengganggu penyimpanan ke database
3. buat bahwa semua data tidak boleh mengandung script jahat
*/
function cek_input($data) {
    $data = trim($data); // menghilangkan spasi awal dan akhir
    $data = stripslashes($data); //hilangkan semua slash yang bisa mengganggu penyimpanan ke database
    $data = htmlspecialchars($data); //buat bahwa semua data tidak boleh mengandung script jahat
    return $data;
  }

if ($_SERVER["REQUEST_METHOD"] == "POST") {
 
  if (empty($_POST["nama"])){ // empty digunakan mengecek data ada tidak
    $error_nama = "Nama tidak boleh kosong";
  }else{
    $nama = cek_input($_POST["nama"]);
    if (!preg_match("/^[a-zA-Z ]*$/",$nama)) // preg_match digunakan mengecek data hanya boleh huruf dan angka
    {
      $nameErr = "Inputan Hanya boleh huruf dan spasi";
    }
  }
 
  if (empty($_POST["email"])){ // empty digunakan mengecek data ada tidak
    $error_email = "Email tidak boleh kosong";
  } else {
    $email = cek_input($_POST["email"]);
    if (!filter_var($email, FILTER_VALIDATE_EMAIL))
    {
      $error_email = "Format email Invalid";
    }
  }
 
  if (empty($_POST["pesan"])){ // empty digunakan mengecek data ada tidak
    $error_pesan = "Pesan tidak boleh kosong";
  } else{
    $pesan = cek_input($_POST["pesan"]);
  }
   
 
  if (empty($_POST["web"])){ // empty digunakan mengecek data ada tidak
    $error_web = "Website tidak boleh kosong";
  }else{
    $web = cek_input($_POST["web"]);
 
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$web))
    {
      $error_web = "URL tidak valid";
    }
  }
 
  if (empty($_POST["telp"])){ // empty digunakan mengecek data ada tidak
    $error_telp = "Telp tidak boleh kosong";
  } else {
    $telp = cek_input($_POST["telp"]);
 
    if(!is_numeric($telp))
    {
      $error_telp = 'Nomor HP hanya boleh angka';
    }
  }
}
?>

<div class="container">
<div class="row">
    <div class="col-md-6">
        <div class="card bg-secondary text-white">
        <div class="card-header">
            Contoh Validasi Form dengan PHP
        </div>
        <div class="card-body">
            <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  <div class="form-group row">
                <label for="nama" class="col-sm-2 col-form-label">Nama</label>
                <div class="col-sm-10">
                <input type="text" name="nama" class="form-control <?php echo ($error_nama !="" ? "is-invalid" : ""); ?>" id="nama" placeholder="Nama" value="<?php echo $nama; ?>"><span class="warning"><?php echo $error_nama; ?></span>
                </div>
            </div>
           
            <div class="form-group row">
                <label for="email" class="col-sm-2 col-form-label">Email</label>
                <div class="col-sm-10">
                <input type="text" name="email" class="form-control <?php echo($error_email !="" ? "is-invalid" : ""); ?>" id="email" placeholder="email" value="<?php echo $email; ?>"><span class="warning"><?php echo $error_email; ?></span>
                </div>
            </div>
           
            <div class="form-group row">
                <label for="web" class="col-sm-2 col-form-label">Website</label>
                <div class="col-sm-10">
                <input type="text" name="web" class="form-control  <?php echo($error_web !="" ? "is-invalid" : ""); ?>" id="web" placeholder="web" value="<?php echo $web; ?>"><span class="warning"><?php echo $error_web; ?></span>
                </div>
            </div>
           
           
           
            <div class="form-group row">
                <label for="telp" class="col-sm-2 col-form-label">Telp</label>
                <div class="col-sm-10">
                <input type="text" name="telp" class="form-control <?php echo($error_telp !="" ? "is-invalid" : ""); ?>" id="telp" placeholder="telp" value="<?php echo $telp; ?>"><span class="warning"><?php echo $error_telp; ?></span>
                </div>
            </div>
           
            <div class="form-group row ">
                <label for="pesan" class="col-sm-2 col-form-label">Pesan</label>
                <div class="col-sm-10">
                <textarea name="pesan" class="form-control <?php echo($error_pesan !="" ? "is-invalid" : ""); ?>"><?php echo $pesan; ?></textarea><span class="warning"><?php echo $error_pesan; ?></span>
                </div>
            </div>
           
           
            <div class="form-group row">
                <div class="col-sm-10">
                <button type="submit" class="btn btn-primary">Sign in</button>
                </div>
            </div>
            </form>
        </div>
        </div>
    </div>
    <div class="col-md-6">
    <?php
    echo "<h2>Inputan kamu:</h2>";
    echo "Nama = ".$nama;
    echo "<br>";
    echo "Email = ".$email;
    echo "<br>";
    echo "Website = ".$web;
    echo "<br>";
    echo "Telp = ".$telp;
    echo "<br>";
    echo "Pesan = ".$pesan;
    ?>
    </div>
</div>

</div>

 
</body>
</html>
   



Hasil dari kode diatas adalah sebagai berikut.
Hasil dari contoh validasi formulir pertama

















Posting Komentar

0 Komentar