कोडआईग्निटर - फॉर्म वैलिडेशन

वेब एप्लिकेशन का निर्माण करते समय सत्यापन एक महत्वपूर्ण प्रक्रिया है। यह सुनिश्चित करता है कि जो डेटा हमें मिल रहा है वह स्टोर या प्रोसेस करने के लिए उचित और वैध है। CodeIgniter ने इस कार्य को बहुत आसान बना दिया है। आइए इस प्रक्रिया को एक सरल उदाहरण से समझते हैं।

उदाहरण

एक व्यू फाइल बनाएं myform.php और नीचे दिए गए कोड को इसमें सेव करें application/views/myform.php। यह पृष्ठ प्रदर्शित करेगा जहां उपयोगकर्ता अपना नाम प्रस्तुत कर सकता है और हम यह सुनिश्चित करने के लिए इस पृष्ठ को मान्य करेंगे कि यह सबमिट करते समय खाली नहीं होना चाहिए।

<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>

एक व्यू फाइल बनाएं formsuccess.php और इसे में सहेजें application/views/formsuccess.php। यदि प्रपत्र सफलतापूर्वक मान्य है, तो यह पृष्ठ प्रदर्शित किया जाएगा।

<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>

एक नियंत्रक फ़ाइल बनाएँ Form.php और इसे में सहेजें application/controller/Form.php। यह फ़ॉर्म या तो त्रुटियों को दिखाएगा, यदि इसे ठीक से मान्य नहीं किया गया है या इसे पुनर्निर्देशित नहीं किया गया हैformsuccess.php पृष्ठ।

<?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'); 
         } 
      }
   }
?>

में निम्नलिखित पंक्ति जोड़ें application/config/routes.php

$route['validation'] = 'Form';

आइए हम इस उदाहरण को ब्राउज़र में निम्न URL पर जाकर निष्पादित करें। यह URL आपकी साइट के आधार पर भिन्न हो सकता है।

http://yoursite.com/index.php/validation

यह निम्नलिखित स्क्रीन का उत्पादन करेगा -

हमने नियंत्रक में एक मान्यता जोड़ी है - Nameफॉर्म जमा करने से पहले आवश्यक फ़ील्ड है। इसलिए, यदि आप नाम फ़ील्ड में कुछ भी दर्ज किए बिना सबमिट बटन पर क्लिक करते हैं, तो आपको नीचे स्क्रीन में दिखाए अनुसार सबमिट करने से पहले नाम दर्ज करने के लिए कहा जाएगा।

सफलतापूर्वक नाम दर्ज करने के बाद, आपको स्क्रीन पर पुनः निर्देशित किया जाएगा जैसा कि नीचे दिखाया गया है।

उपरोक्त उदाहरण में, हमने आवश्यक नियम सेटिंग का उपयोग किया है। CodeIgniter में कई नियम उपलब्ध हैं, जो नीचे वर्णित हैं।

मान्यता नियम संदर्भ

निम्नलिखित सभी मूल नियमों की एक सूची है जो उपयोग करने के लिए उपलब्ध हैं -

नियम पैरामीटर विवरण उदाहरण

required

नहीं यदि प्रपत्र तत्व रिक्त है, तो FALSE लौटाता है।

matches

हाँ यदि फ़ार्म तत्व पैरामीटर में एक से मेल नहीं खाता है तो FALSE लौटाता है। मैचों [form_item]

regex_match

हाँ यदि प्रपत्र तत्व नियमित अभिव्यक्ति से मेल नहीं खाता है तो FALSE लौटाता है। regex_match [/ regex /]

differs

हाँ यदि पैरामीटर में पैरामीटर एक से भिन्न नहीं है, तो FALSE लौटाता है। अलग [form_item]

is_unique

हाँ पैरामीटर में तालिका और फ़ील्ड नाम के लिए प्रपत्र तत्व अद्वितीय नहीं है, तो FALSE लौटाता है। नोट - इस नियम में कार्य करने के लिए क्वेरी बिल्डर को सक्षम करने की आवश्यकता है । is_unique [table.field]

min_length

हाँ यदि फ़ार्म तत्व पैरामीटर मान से कम है, तो FALSE लौटाता है। MIN_LENGTH [3]

max_length

हाँ यदि फ़ार्म तत्व पैरामीटर मान से अधिक है, तो FALSE लौटाता है। MAX_LENGTH [12]

exact_length

हाँ FALSE लौटाता है यदि प्रपत्र तत्व बिल्कुल पैरामीटर मान नहीं है। exact_length [8]

greater_than

हाँ FALSE लौटाता है यदि प्रपत्र तत्व पैरामीटर मान से कम या बराबर है या संख्यात्मक नहीं है। GREATER_THAN [8]

greater_than_equal_to

हाँ FALSE लौटाता है यदि प्रपत्र तत्व पैरामीटर मान से कम है, या संख्यात्मक नहीं है। greater_than_equal_to [8]

less_than

हाँ FALSE लौटाता है यदि प्रपत्र तत्व पैरामीटर मान से अधिक या बराबर है या संख्यात्मक नहीं है। LESS_THAN [8]

less_than_equal_to

हाँ FALSE लौटाता है यदि प्रपत्र तत्व पैरामीटर मान से अधिक है, या संख्यात्मक नहीं है। less_than_equal_to [8]

in_list

हाँ यदि प्रपत्र तत्व पूर्व निर्धारित सूची में नहीं है, तो FALSE लौटाता है। in_list [लाल, नीले, हरे]

alpha

नहीं FALSE लौटाता है यदि प्रपत्र तत्व में वर्णानुक्रमिक वर्णों के अलावा कुछ और है।

alpha_numeric

नहीं यदि तत्व में अल्फ़ान्यूमेरिक वर्णों के अलावा कुछ भी शामिल है तो FALSE लौटाता है।

alpha_numeric_spaces

नहीं यदि तत्व में अल्फ़ान्यूमेरिक वर्ण या रिक्त स्थान के अलावा कुछ भी हो तो FALSE लौटाता है। शुरुआत या अंत में रिक्त स्थान से बचने के लिए ट्रिम के बाद इस्तेमाल किया जाना चाहिए

alpha_dash

नहीं यदि तत्व में अल्फ़ान्यूमेरिक वर्ण, अंडरस्कोर या डैश के अलावा कुछ और है तो FALSE लौटाता है।

numeric

नहीं FALSE लौटाता है यदि प्रपत्र तत्व में संख्यात्मक वर्णों के अलावा कुछ भी हो।

integer

नहीं FALSE लौटाता है यदि प्रपत्र तत्व में पूर्णांक के अलावा कुछ भी शामिल है।

decimal

नहीं FALSE लौटाता है यदि प्रपत्र तत्व में दशमलव संख्या के अलावा कुछ और है।

is_natural

नहीं FALSE लौटाता है यदि प्रपत्र तत्व में प्राकृतिक संख्या के अलावा कुछ भी हो - 0, 1, 2, 3, आदि।

is_natural_no_zero

नहीं एफएएलएसई लौटाता है यदि फार्म तत्व में प्राकृतिक संख्या के अलावा कुछ भी शामिल है, लेकिन शून्य नहीं - 1, 2, 3, आदि।

valid_url

नहीं यदि फॉर्म एलिमेंट में वैध URL नहीं है तो FALSE लौटाता है।

valid_email

नहीं यदि प्रपत्र तत्व में कोई मान्य ईमेल पता नहीं है, तो FALSE लौटाता है।

valid_emails

नहीं FALSE लौटाता है यदि अल्पविराम से अलग की गई सूची में प्रदान किया गया कोई मान मान्य ईमेल नहीं है।

valid_ip

नहीं यदि आपूर्ति की गई आईपी मान्य नहीं है तो FALSE लौटाता है। IP प्रारूप निर्दिष्ट करने के लिए 'ipv4' या 'ipv6' के वैकल्पिक पैरामीटर को स्वीकार करता है।

valid_base64

नहीं FALSE लौटाता है अगर आपूर्ति की गई स्ट्रिंग में मान्य Base64 वर्णों के अलावा कुछ भी शामिल है।