CodeIgniter - Validasi Formulir
Validasi adalah proses penting saat membangun aplikasi web. Ini memastikan bahwa data yang kami peroleh tepat dan valid untuk disimpan atau diproses. CodeIgniter telah membuat tugas ini sangat mudah. Mari kita pahami proses ini dengan contoh sederhana.
Contoh
Buat file tampilan myform.php dan simpan kode di bawah ini application/views/myform.php. Halaman ini akan menampilkan form dimana user dapat memasukkan namanya dan kami akan memvalidasi halaman ini untuk memastikan bahwa halaman tersebut tidak boleh kosong saat mengirimkan.
<html>
<head>
<title>My Form</title>
</head>
<body>
<form action = "" method = "">
<?php echo validation_errors(); ?>
<?php echo form_open('form'); ?>
<h5>Name</h5>
<input type = "text" name = "name" value = "" size = "50" />
<div><input type = "submit" value = "Submit" /></div>
</form>
</body>
</html>
Buat file tampilan formsuccess.php dan simpan di application/views/formsuccess.php. Halaman ini akan ditampilkan jika formulir berhasil divalidasi.
<html>
<head>
<title>My Form</title>
</head>
<body>
<h3>Your form was successfully submitted!</h3>
<p><?php echo anchor('form', 'Try it again!'); ?></p>
</body>
</html>
Buat file pengontrol Form.php dan simpan di application/controller/Form.php. Formulir ini akan menampilkan kesalahan jika tidak divalidasi dengan benar atau dialihkan keformsuccess.php halaman.
<?php
class Form extends CI_Controller {
public function index() {
/* Load form helper */
$this->load->helper(array('form'));
/* Load form validation library */
$this->load->library('form_validation');
/* Set validation rule for name field in the form */
$this->form_validation->set_rules('name', 'Name', 'required');
if ($this->form_validation->run() == FALSE) {
$this->load->view('myform');
}
else {
$this->load->view('formsuccess');
}
}
}
?>
Tambahkan baris berikut application/config/routes.php.
$route['validation'] = 'Form';
Mari kita jalankan contoh ini dengan mengunjungi URL berikut di browser. URL ini mungkin berbeda berdasarkan situs Anda.
http://yoursite.com/index.php/validation
Ini akan menghasilkan layar berikut -
Kami telah menambahkan validasi di pengontrol - Nameharus diisi sebelum mengirimkan formulir. Jadi, jika Anda mengklik tombol kirim tanpa memasukkan apa pun di bidang nama, maka Anda akan diminta untuk memasukkan nama sebelum mengirimkan seperti yang ditunjukkan pada layar di bawah ini.
Setelah berhasil memasukkan nama, Anda akan diarahkan ke layar seperti gambar di bawah ini.
Dalam contoh di atas, kami telah menggunakan pengaturan aturan yang diperlukan. Ada banyak aturan yang tersedia di CodeIgniter, yang dijelaskan di bawah ini.
Referensi Aturan Validasi
Berikut ini adalah daftar semua aturan asli yang tersedia untuk digunakan -
Aturan | Parameter | Deskripsi | Contoh |
---|---|---|---|
required |
Tidak | Mengembalikan FALSE jika elemen formulir kosong. | |
matches |
Iya | Mengembalikan FALSE jika elemen formulir tidak cocok dengan yang ada di parameter. | cocok dengan [form_item] |
regex_match |
Iya | Mengembalikan FALSE jika elemen formulir tidak cocok dengan ekspresi reguler. | regex_match [/ regex /] |
differs |
Iya | Mengembalikan FALSE jika elemen formulir tidak berbeda dari yang ada di parameter. | berbeda [form_item] |
is_unique |
Iya | Mengembalikan FALSE jika elemen formulir tidak unik untuk tabel dan nama bidang di parameter. Catatan - Aturan ini mengharuskan Query Builder diaktifkan agar berfungsi. | is_unique [table.field] |
min_length |
Iya | Mengembalikan FALSE jika elemen formulir lebih pendek dari nilai parameter. | min_length [3] |
max_length |
Iya | Mengembalikan FALSE jika elemen formulir lebih panjang dari nilai parameter. | max_length [12] |
exact_length |
Iya | Mengembalikan FALSE jika elemen formulir tidak persis seperti nilai parameter. | panjang_kepat [8] |
greater_than |
Iya | Mengembalikan FALSE jika elemen formulir kurang dari atau sama dengan nilai parameter atau bukan numerik. | lebih besar dari [8] |
greater_than_equal_to |
Iya | Mengembalikan FALSE jika elemen formulir lebih kecil dari nilai parameter, atau bukan numerik. | lebih besar dari_equal_to [8] |
less_than |
Iya | Mengembalikan FALSE jika elemen formulir lebih besar dari atau sama dengan nilai parameter atau bukan numerik. | kurang dari [8] |
less_than_equal_to |
Iya | Mengembalikan FALSE jika elemen formulir lebih besar dari nilai parameter, atau bukan numerik. | less_than_equal_to [8] |
in_list |
Iya | Mengembalikan FALSE jika elemen formulir tidak ada dalam daftar yang ditentukan sebelumnya. | in_list [merah, biru, hijau] |
alpha |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter alfabet. | |
alpha_numeric |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter alfanumerik. | |
alpha_numeric_spaces |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter alfanumerik atau spasi. Sebaiknya digunakan setelah trim untuk menghindari spasi di awal atau akhir | |
alpha_dash |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter alfanumerik, garis bawah, atau tanda hubung. | |
numeric |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter numerik. | |
integer |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain bilangan bulat. | |
decimal |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain angka desimal. | |
is_natural |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain bilangan asli - 0, 1, 2, 3, dll. | |
is_natural_no_zero |
Tidak | Mengembalikan FALSE jika elemen formulir berisi apa pun selain bilangan asli, tetapi tidak nol - 1, 2, 3, dll. | |
valid_url |
Tidak | Mengembalikan FALSE jika elemen formulir tidak berisi URL yang valid. | |
valid_email |
Tidak | Mengembalikan FALSE jika elemen formulir tidak berisi alamat email yang valid. | |
valid_emails |
Tidak | Menampilkan FALSE jika nilai apa pun yang diberikan dalam daftar yang dipisahkan koma bukan email yang valid. | |
valid_ip |
Tidak | Mengembalikan FALSE jika IP yang diberikan tidak valid. Menerima parameter opsional 'ipv4' atau 'ipv6' untuk menentukan format IP. | |
valid_base64 |
Tidak | Mengembalikan FALSE jika string yang diberikan berisi apa pun selain karakter Base64 yang valid. |