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.