CodeIgniter - Form Doğrulama
Doğrulama, web uygulaması oluştururken önemli bir süreçtir. Aldığımız verilerin saklanması veya işlenmesi için uygun ve geçerli olmasını sağlar. CodeIgniter bu görevi çok kolaylaştırdı. Bu süreci basit bir örnekle anlayalım.
Misal
Bir görünüm dosyası oluşturun myform.php ve aşağıdaki kodu içine kaydedin application/views/myform.php. Bu sayfa, kullanıcının adını gönderebileceği bir formu gösterecek ve bu sayfayı gönderirken boş kalmamasını sağlamak için doğrulayacağız.
<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>
Bir görünüm dosyası oluşturun formsuccess.php ve içine kaydet application/views/formsuccess.php. Form başarıyla doğrulanırsa bu sayfa görüntülenecektir.
<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>
Bir denetleyici dosyası oluşturun Form.php ve içine kaydet application/controller/Form.php. Bu form, uygun şekilde doğrulanmamışsa veya adresine yeniden yönlendirilmemişse hataları gösterir.formsuccess.php sayfa.
<?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');
}
}
}
?>
Aşağıdaki satırı ekleyin application/config/routes.php.
$route['validation'] = 'Form';
Tarayıcıda aşağıdaki URL'yi ziyaret ederek bu örneği yürütelim. Bu URL, sitenize bağlı olarak farklı olabilir.
http://yoursite.com/index.php/validation
Aşağıdaki ekranı üretecektir -
Denetleyiciye bir doğrulama ekledik - Nameformu göndermeden önce gerekli alandır. Bu nedenle, ad alanına herhangi bir şey girmeden gönder düğmesine tıklarsanız, aşağıdaki ekranda gösterildiği gibi göndermeden önce adı girmeniz istenecektir.
İsmi başarıyla girdikten sonra, aşağıda gösterildiği gibi ekrana yönlendirileceksiniz.
Yukarıdaki örnekte, gerekli kural ayarını kullandık. CodeIgniter'da aşağıda açıklanan birçok kural vardır.
Doğrulama Kuralı Referansı
Aşağıda, kullanılabilecek tüm yerel kuralların bir listesi verilmiştir -
Kural | Parametre | Açıklama | Misal |
---|---|---|---|
required |
Hayır | Form öğesi boşsa FALSE döndürür. | |
matches |
Evet | Form öğesi parametredeki ile eşleşmezse FALSE döndürür. | [form_item] ile eşleşir |
regex_match |
Evet | Form öğesi normal ifadeyle eşleşmezse FALSE döndürür. | regex_match [/ regex /] |
differs |
Evet | Form öğesi parametrede olandan farklı değilse FALSE döndürür. | farklılık [form_item] |
is_unique |
Evet | Form öğesi, parametrede tablo ve alan adı için benzersiz değilse YANLIŞ döndürür. Not - Bu kuralın çalışması için Query Builder'ın etkinleştirilmesi gerekir. | is_unique [table.field] |
min_length |
Evet | Form öğesi parametre değerinden kısaysa YANLIŞ döndürür. | min_length [3] |
max_length |
Evet | Form öğesi parametre değerinden uzunsa YANLIŞ döndürür. | max_length [12] |
exact_length |
Evet | Form öğesi tam olarak parametre değeri değilse FALSE döndürür. | tam_uzunluk [8] |
greater_than |
Evet | Form öğesi, parametre değerinden küçükse veya ona eşitse veya sayısal değilse YANLIŞ döndürür. | [8] den büyük |
greater_than_equal_to |
Evet | Form öğesi parametre değerinden küçükse veya sayısal değilse YANLIŞ döndürür. | great_than_equal_to [8] |
less_than |
Evet | Form öğesi parametre değerinden büyükse veya ona eşitse veya sayısal değilse YANLIŞ döndürür. | less_than [8] |
less_than_equal_to |
Evet | Form öğesi parametre değerinden büyükse veya sayısal değilse YANLIŞ döndürür. | less_than_equal_to [8] |
in_list |
Evet | Form öğesi önceden belirlenmiş bir listede değilse YANLIŞ döndürür. | in_list [kırmızı, mavi, yeşil] |
alpha |
Hayır | Form öğesi alfabetik karakterlerden başka bir şey içeriyorsa YANLIŞ değerini döndürür. | |
alpha_numeric |
Hayır | Form öğesi alfasayısal karakterler dışında bir şey içeriyorsa YANLIŞ döndürür. | |
alpha_numeric_spaces |
Hayır | Form öğesi alfasayısal karakterler veya boşluklardan başka bir şey içeriyorsa YANLIŞ değerini döndürür. Başta veya sonunda boşluk kalmaması için trim sonrası kullanılmalıdır. | |
alpha_dash |
Hayır | Form öğesi alfasayısal karakterler, alt çizgiler veya kısa çizgiler dışında herhangi bir şey içeriyorsa YANLIŞ değerini döndürür. | |
numeric |
Hayır | Form öğesi sayısal karakterlerden başka bir şey içeriyorsa YANLIŞ döndürür. | |
integer |
Hayır | Form öğesi bir tam sayı dışında bir şey içeriyorsa YANLIŞ döndürür. | |
decimal |
Hayır | Form öğesi ondalık sayıdan başka bir şey içeriyorsa YANLIŞ döndürür. | |
is_natural |
Hayır | Form öğesi doğal sayı dışında herhangi bir şey içeriyorsa YANLIŞ döndürür - 0, 1, 2, 3 vb. | |
is_natural_no_zero |
Hayır | Form öğesi doğal sayı dışında bir şey içeriyor ancak sıfır - 1, 2, 3 vb. İçermiyorsa YANLIŞ döndürür. | |
valid_url |
Hayır | Form öğesi geçerli bir URL içermiyorsa YANLIŞ döndürür. | |
valid_email |
Hayır | Form öğesi geçerli bir e-posta adresi içermiyorsa YANLIŞ döndürür. | |
valid_emails |
Hayır | Virgülle ayrılmış bir listede sağlanan herhangi bir değer geçerli bir e-posta değilse YANLIŞ döndürür. | |
valid_ip |
Hayır | Sağlanan IP geçerli değilse FALSE döndürür. Bir IP biçimi belirtmek için isteğe bağlı bir "ipv4" veya "ipv6" parametresini kabul eder. | |
valid_base64 |
Hayır | Sağlanan dize geçerli Base64 karakterlerinden başka bir şey içeriyorsa YANLIŞ döndürür. |