CodeIgniter telah menyediakan library khusus untuk validasi form yaitu library form_validation.
Untuk menggunakannya kita cukup konfigurasi pada bagian config untuk file autoload.php
$autoload['libraries'] = array('form_validation');
Dengan menggunakan form validation dari codeigniter ini kita dapat melakukan validasi
keterisian data, panjang dan pendeknya sebuah karakter, tipe data, email valid dan pembanding
nilai antara dua field (biasanya untuk field password dan konfirmasi password).
Ikuti langkah-langkah dibawah ini untuk mulai belajar membuat form validation di codeigniter.
Pastikan sebelumnya kalian sudah melakukan konfigurasi dasar seperti mengatur base url,
library dan helper.
View
<!DOCTYPE html>
<html>
<head>
base_url()?>/assets/bootstrap/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<?php if (validation_errors())
{?>
</div>
<?php
} ?>
<label>Nama:</label>
/>
</div>
<div class="form-group">
<label>No HP:</label>
HP" />
</div>
<div class="form-group">
<label>Email:</label>
Email" />
</div>
<div class="form-group">
<label>Password:</label>
Password" />
</div>
<div class="form-group">
<label>Konfirmasi Password:</label>
</div>
</form>
</div>
</body>
</html>
Untuk tutorial ini saya menggunakan bootstrap untuk desain tampilannya, terdapat lima field
yaitu
▪ Nama
▪ Email
▪ No HP
▪ Password
▪ Konfirmasi Password
Nantinya kita akan membuat aturan (rules) validasi form untuk masing-masing field tersebut.
<?php if (validation_errors())
{?>
</div>
<?php
} ?>
Bagian sintak ini berfungsi untuk menampilkan pesan error jika validasi form bernilai false.
Untuk rules nya akan kita buat pada bagian controller.
Controller
<?php
function index()
$this->load->view('v_form_validation');
}
function aksi()
$this->form_validation->set_rules('password', 'Password',
'required|min_length[5]');
'required|min_length[5]|matches[password]');
if($this->form_validation->run() == FALSE)
$this->load->view('v_form_validation');
else
redirect('user');
?>
Pada class controller form validation ini terdapat dua function didalamnya yang pertama adalah
function index, function ini berfungsi sebagai fungsi utama untuk menampilkan form yang diload
melalui view v_form_validation.
Selanjutnya terdapat function aksi untuk menerima kiriman form dari v_form_validation. didalam
fungsi aksi kita mengatur rules/aturan untuk form validationnya. Perhatikan pada sintax dibawah
'required|min_length[5]');
Terdapat 3 komponen form validation, yang pertama nama field dari kiriman form, label ketika
menampilkan pesan error dan rules sebagai tempat definisi aturan form validationnya.
Artikel terkait : Function PHP
Berikut ini merupakan aturan (rules) form validation berdasarkan sintak diatas:
▪ Field nama harus di isi (required) dan panjang karakter yang diinput maksimal 30.
▪ Field email juga harus diisi (required) dan harus memasukan format email yang
valid.
▪ Field No HP tidak wajib diisi, namun apabila di isi maka harus diisi dengan tipe
numerik.
▪ Field password juga wajib diisi (required) dan minimal karakter yang harus diisi
adalah 5.
▪ Selanjutnya field konfirmasi password wajib juga diisi dengan panjang minimal 5
karakter dan harus cocok dengan field password.
Dalam pendefinisian aturan (rules) kita bisa mendefinisikan lebih dari satu aturan dengan
menggunakan operator | atau bsa disebut cascading. selain cascading terdapat juga istilah lain
yaitu prepping namun saya tidak akan membahas disini.
Aturan/rules diatas hanya sebagian kecil dari aturan yang bisa digunakan. Kalian bisa temukan
dan belajar lebih lagi pada user guide codeigniter
Uji Coba
Sekarang coba kita uji coba apakah form validationnya bekerja ? Buka class controller
form_validation
http://localhost/akademik/form_validation/
Pada contoh ini saya memasukan data seperti pada screenshot berikut
▪ field nama, dikosongkan
▪ No HP, dimasukan huruf alfabet
▪ Email, dimasukan invalid email
▪ password, 12345
▪ dan terakhir konfirmasi password , 1234567890
Kemudian saya menekan tombol Submit, maka hasilnya menapilkan pemberitahuan ini
Dari pemberitahuan pesan error diatas menampilkan bahwa field nama harus diisi, email yang
diinput harus email valid, field no hp harus diisi hanya tipe numerik, dan pada field konfirmasi
password tidak sesuai/ tidak sama dengan field password.
Baca juga : Membuat login dengan CodeIgniter
Inputan dari pengguna harus memenuhi aturan-aturan yang telah kita definisikan, selama form
validationnya bernilai false maka sistem tidak akan melanjutkan. Apabila nilai form validation
bernilai true maka blok else yang akan dieksekusi,
if($this->form_validation->run() == FALSE)
$this->load->view('v_form_validation');
else
redirect('user');
Mengaktifkan Session
Terdapat dua cara untuk mengaktifkan session, cara yang pertama kita delkarasikan di
variabel autoload, yang mana nantinya library session akan secara otomatis di load pada
setiap controller yang dibuat. Cara yang kedua kita buat manual secara langsung pada masing-
masing controller yang membutuhkan penggunaan session tersebut.
Aktifkan Di Autoload.php
Untuk mengaktifkan session bisa dilakukan pada file autoload.php yang terdapat didalam
folder application/config. Cari variabel $utoload dengan nilai ‘libraries’. Lihat contoh dibawah
ini:
$autoload['libraries'] = array('session');
Selain session kita juga dapat meload beberapa library lainnya secara otomatis di autoload.php
ini misalnya database, form_validation dan lainnya. Setiap library yang diload nilainya diapit
dengan tanda kutip dan dipisahkan dengan tanda koma didalam nilai arraynya.
Jika kita ingin secara manual session dapat diload pada controller yang dikehendaki. Berikut ini
sintaknya:
$this->load->library('session');
Dalam kasus-kasus tertentu memang tidak semua controller memerlukan session. Namun
penggunaan session tidak akan berpengaruh selama library tersebut diload dengan benar.
Baca juga : Membuat form validation di CodeIgniter
Untuk men-set variabel session kita gunakan perintah $this->session untuk mengakses obyek
session dengan method set_userdata(). Secara umum method ini mempunyai dua argumen,
yang pertama adalah nama session dan argumen kedua adalah nilainya.
Untuk mengakses nilai session kita menggunakan method userdata() diikuti dengan
nama session yang ingin diakses. Contoh :
echo $this->session->userdata('Nama');
Sintak diatas akan menampilkan nilai pada variabel session Nama yaitu ‘Setiawan Dimas‘.
Harap diperhatikan deklarasi pada nama variabel session bersifat case sensitive, sehingga huruf
besar kecil dibedakan.
Selain itu kita juga dapat men-set variabel session dengan beberapa item sekaligus
menggunakan array (larik).
$arraydata = array(
);
$this->session->set_userdata($arraydata);
Sintak diatas sebenarnya sama dengan contoh set variabel session yang saya bahas diatas,
perbedaannya yang diatas kita men-set item tunggal sementara contoh yang kedua kita men set
beberapa item sekaligus dengan menggunakan array.
Bahkan kita juga dapat men-set lebih dari satu nilai pada variabel session. Contohnya pada
variabel session Hobi nilainya lebih dari satu yaitu Olahraga dan travelling. Untuk mengakses
nilainya akan diakses berdasarkan index array. Index array dimulai dari 0 sehingga jika kita ingin
mengakses nilai olahraga maka index yang diakases adalah [0] dan untuk
nilai travelling indexnya [1]. Begitu seterusnya, bila nilainya sangat banyak bisa kita gunakan
perulangan for untuk mengakses index array tersebut.
Untuk menampilkan nilai dari masing-masing variabel session tersebut tetap kita
gunakan method userdata();
echo $this->session->userdata('Pekerjaan');
echo $this->session->userdata('Usia');
echo $this->session->userdata('Jenis_kalamin');
echo $this->session->userdata('Hobi')[0];
echo $this->session->userdata('Hobi')[1];
Untuk melihat secara keseluruhan variabel sesssion yang aktif kita bisa
gunakan method userdata() tanpa diikuti oleh argumennya. Contoh
print_r($this->session->userdata());
$this->session->unset_userdata('Hobi');
Pada sintak diatas kita menghapus variabel session dengan nama Hobi.
Jika kita ingin mengapus beberapa variabel session sekaligus, bisa dengan menggunakan array.
$this->session->unset_userdata($sesi);
Sintak diatas kita menghapus dua variabel session sekaligus yaitu Jenis_kalamin dan usia.