कोडआईग्निटर - फॉर्म वैलिडेशन
वेब एप्लिकेशन का निर्माण करते समय सत्यापन एक महत्वपूर्ण प्रक्रिया है। यह सुनिश्चित करता है कि जो डेटा हमें मिल रहा है वह स्टोर या प्रोसेस करने के लिए उचित और वैध है। 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 वर्णों के अलावा कुछ भी शामिल है। |