Setiap data yang akan diproses atau disimpan pada database, sebaiknya sudah melalui proses validasi terlebih dulu. Hal ini bertujuan agar mengurangi resiko adanya serangan melalui sql injection yang dapat merusak struktur database, atau adanya pencurian data yang sangat berbahaya. Dengan adanya validasi karakter ini memungkinkan kita mengendalikan mekanisme masuknya data sebagai hasil interaksi antara pengguna dan sistem.
Proses validasi karakter pada pemrograman PHP dapat disesuaikan dengan standar atau aturan yang kita buat, baik yang berbasis database atau berbasis kebiasaan pengguna. Berdasarkan pengalaman, penggunaan validasi yang melibatkan 2 (dua) aspek tersebut cukup efektif mengurangi resiko dan dapat diterapkan pada beberapa proses sekaligus. Sebelum kita beranjak pada masalah teknikal kita akan membahas terlebih dulu apa saja yang akan kita validasi pada data masukan (input) sehingga bisa tersimpan pada tabel-tabel database dengan aman.
1. Memahami Tipe Karakter Database
Tipe karakter berhubungan dengan prilaku sebuah karakter sehingga sistem memberikan perlakuan yang berbeda pada masing-masing tipe. Ada baiknya kita memahami tipe-tipe karakter tersebut karena akan sangat bermanfaat ketika kita menghadapi project yang menuntut pendalaman pada basis data. Untuk memahami lebih mendalam mengenai tipe data ini baiknya pelajari terlebih dulu Memahami Tipe Data Pada DBMS MySql yang sudah dibahas pada postingan lain di seri belajar ini.
2. Contoh Program Input Data Sederhana
Untuk mempersingkat waktu, kita akan melanjutkan beberapa tutorial yang pernah kita buat sebelumnya. Hal ini bertujuan agar kita paham dengan alur proses belajarnya. Jadi silahkan ikuti dulu langkah-langkahnya pada 2 (dua) postingan artikel tutorial berikut ini:
- Membuat Routing Halaman Sederhana Dengan PHP
- Berpindah Halaman Secara Dinamis Tanpa Reload Halaman Dengan jQuery
Silahkan ikuti kedua tutorial tersebut dengan baik. Kemudian kita langsung saja buat program berbasis web untuk input data sederhana pada database. Silahkan buat sebuah database dengan nama misalnya "belajar_php" kemudian buat juga tabel di dalam database tersebut dengan nama misalnya "pasien" spesifikasinya seperti ini:
Penjelasan:
Kolom id_pasien dibatasi dengan jumlah 10 digit, yang artinya database hanya akan dibatasi kurang dari 10 milyar baris data.
Kolom nama kita batasi hingga 225 karakter, dimana nantinya kita bisa batasi lebih ketat hingga 200 karakter.
- Kolom kontak kita coba menggunakan varchar, agar kita tahu perbedaannya nanti saat uji coba.
- Kolom alamat menggunakan text agar pengguna lebih leluasa pada saat input alamat dengan jelas.
- Kolom tempat_lahir, walaupun rata-rata pendek namun kita antisipasi jika ada yang memiliki nama daerah yang terlalu panjang.
- Kolom tanggal_lahir menggunakan format date (YYYY-mm-dd)
- Kolom input_date menggunakan format DATETIME (YYYY-mm-dd hh:ii)
Dalam project yang sudah kita buat pada tutorial sebelumnya, silahkan buat sebuah folder dengan nama "_Config" yang di dalamnya kita buat juga sebuah file PHP dengan nama "Connection.php". Jika sudah ketik script berikut in:
<?php //Ini adalah halaman untuk melakukan konfigurasi database $servername = "localhost"; $username = "root"; $password = ""; $db = "belajar_php"; // Mulai Koneksi $Conn = new mysqli($servername, $username, $password, $db); // Check Koneksi if ($Conn->connect_error) { die("Connection failed: " . $Conn->connect_error); } ?>
Pada file index.php yang ada pada directory utama project, silahkan lakukan perubahan pada beberapa baris sehingga menjadi seperti berikut:
Penjelasan: Pada baris ke 54 sampai dengan 62 merupakan script jQuery yang digunakan untuk menentukan event ketika pengguna memilih menu dengan nilai "id" berupa "FormTambahPasien" maka akan diarahkan pada halaman "_Page/Pasien/FormTambahPasien.php".
Dari Source Code diatas kita buat sebuah folder dengan nama "pasien" kemudian didalamnya kita buat sebuah file dengan nama "FormTambahPasien.php". Jika sudah ketik script berikut ini:
Buat sebuah file dengan nama ProsesTambahPasien.php pada folder "_Page/Pasien/" untuk proses validasi dan menyimpan datanya pada database kemudian ketik script berikut ini:
Penjelasan :
- Pada baris 9 sampai dengan 20 merupakan perintah validasi, dimana sistem akan menampilkan notifikasi ketika form tidak diisi.
- Pada baris 21 sampai 26 digunakan untuk antisipasi jika pengguna tidak memiliki nomor kontak.
- Baris 31 sampai 34 berfungsi untuk membuat variabel yang menghitung jumlah karakter masing-masing data yang sudah ditangkap.
- Baris 35 sampai 57 berfungsi untuk melakukan validasi jumlah karakter masing-masing tipe data.
- Baris 52 berfungsi untuk validasi bahwa form nama tidak boleh mengandung angka.
- Baris 55 berfungsi untuk validasi tempat lahir tidak boleh mengandung angka.
- Baris 59 berfungsi untuk validasi kontak hanya boleh angka
- Baris 63 digunakan untuk validasi tanggal lahir hanya boleh angka dan tanda strip.
- Baris 67 sampai 82 digunakan untuk proses input data ke database.
Sekarang coba jalankan programnya, jika sudah benar maka akan seperti pada vidio demo berikut ini:
3. Penutup
Beberapa fungsi yang digunakan pada saat proses input data, sebelumnya dengan menggunakan PHP kita bisa melakukan berbagai cara validasi. Fungsinya agar pada saat proses input, kita bisa mengetahui penyebab kesalahannya. Selain itu dari segi keamanan akan jauh lebih efektif karena kita membatasi karakter macam apa yang diperbolehkan untuk diproses. Informasi lebih lanjut, apabila ada kesalahan pada langkah-langkah di atas, atau kurang paham dengan penjelasan di atas, silahkan tinggalkan komentar.
0 komentar:
Post a Comment
Silahkan kirim komentar