Thursday, October 9, 2014

Membuat Validasi Input Text pada Form dengan PHP

Input text merupakan elemen form yang paling banyak digunakan. Input text memungkinkan pengguna memasukkan text pendek single line. Ini sesuai dengan kebanyakan tipe data yang dibutuhkan form, misal nama, alamat, email, website, pekerjaan, nomor hp, dan masih banyak lagi data-data yang bisa dimasukkan dengan input text.

Elemen input text pada form dapat dimasuki semua karakter yang ada pada keyboard baik huruf, angka maupun simbol. Hal ini membuat input text sangat rawan kesalahan jika dibutuhkan data yang benar-benar valid. Misal untuk nama kita hanya mengijinkan huruf kecil, huruf besar, spasi dan titik jasa. Lalu pada input nomor hp kita hanya mengijinkan angka saja. Untuk itu dibuat sistem validasi input text pada form sesuai dengan data yang dibutuhkan.

Berikut ini contoh aturan validasi terhadap input text pada form :
Field Aturan Validasi Isi
Nama Hanya huruf, titik dan spasi
Nomor Hanya angka saja
Email Sesuai dengan aturan alamat email, mengandung dot (.) dan at (@)
Website Sesuai dengan aturan alamat URL standar
Berikutnya kita akan membuat script untuk validasi txt dengan menggunakan fungsi-fungsi php seperti preg_match() dan filter_var().

1. Validasi Nama

Dalam validasi nama aturan yang ditetapkan adalah menggunakan huruf kecil, huruf besar, titik dan spasi. Untuk proses validasi digunakan fungsi preg_match() dengan regular expression.

Contoh validasi nama dengan fungsi preg_match() :

//mengambil data dari form  
$nama = test_input($_POST["nama"]);  
// cek validasi text input sesuai aturan yang ditetapkan  
if (!preg_match("/^[a-zA-Z .]*$/",$nama)) {  
$namaErr = "Hanya huruf , titik dan spasi yang diijinkan"; // tampilkan pesan error nama
$nama ="";  //kosongkan variabel $nama 
}

2. Validasi Nomor

Aturan validasi nomor adalah kebalikan dari nama, dimana data yang dimasukkan berupa angka dan tidak diijinkan memasukkan huruf. Untuk proses validasi digunakan masih sama yaitu menggunakan fungsi preg_match() dengan regular expression.

Contoh validasi nomor dengan fungsi preg_match() :

//mengambil data dari form  
$nomor = test_input($_POST["nomor"]);  
// cek validasi text input sesuai aturan yang ditetapkan  
if (!preg_match("/^[0-9]*$/",$nomor)) {  
$nomorErr = "Hanya angka yang diijinkan"; // tampilkan pesan error nomor
$nomor ="";  //kosongkan variabel $nomor 
}

3. Validasi Email

Untuk proses validasi Email kita gunakan fungsi filter_var dengan parameter FILTER_VALIDATE_EMAIL. Cara ini lebih mudah dan simpel daripada harus membuat regular expression jika menggunakan fungsi preg_match().

Contoh validasi email dengan fungsi filter_var():

 //mengambil data dari form  
 $email = test_input($_POST["email"]);  
 // cek format email yang dimasukkan  
 if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {  
 $emailErr = "Format email tidak valid !"; //tampilkan pesan error email  
 $email=""; // kosongkan variabel $email  
 }  

4. Validasi Website

Pada proses validasi website ada dua aturan yang bisa dipilih, yaitu aturan baku dan tidak baku. Untuk aturan baku maka alamat website harus menggunakan http://google.com. Sedangkan aturan tidak baku memperbolehkan penulisan dengan www, misal www.google.com.

Untuk proses validasi dengan aturan penulisan URL website baku kita bisa gunakan fungsi filter_var dengan parameter FILTER_VALIDATE_URL. Jika menggunakan fungsi ini maka pengguna harus benar-benar tepat dalam menulis alamat website sesuai aturan baku penulisan URL.

Contoh validasi alamat URL dengan fungsi filter_var():

 //mengambil data dari form  
 $website = test_input($_POST["website"]);  
 // cek format website yang dimasukkan  
 if (!filter_var($email, FILTER_VALIDATE_URL)) {  
 $websiteErr = "Format alamat Website tidak valid !"; //tampilkan pesan error website  
 $website=""; // kosongkan variabel $website  
 }  
Untuk alternatif kita bisa membuat validasi alamat website sendiri dengan fungsi preg_match(). Disini kita memperbolehkan penulisan alamat website dengan www contoh: www.google.com.

Contoh validasi alamat URL dengan fungsi preg_match() :

 //mengambil data dari form  
 $website = test_input($_POST["website"]);  
 // cek format website yang dimasukkan  
 if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
 $websiteErr = "Format alamat Website tidak valid !"; //tampilkan pesan error website  
 $website=""; // kosongkan variabel $website  
 }  
Lihat index artikel ini

Referensi :

7 komentar: