2015-09-19 7 views
8

मैं कोडइग्निटर के लिए नया हूं और मैं बस शुरुआत में फंस गया हूं। मैं HMVC विस्तार उपयोग कर रहा हूँ और सत्यापित करते समय मैं निम्नलिखित त्रुटि हो रही है:।कोडइग्निटर - आपके फ़ील्ड नाम से संबंधित एक त्रुटि संदेश तक पहुंचने में असमर्थ पासवर्ड। (Pword_check)

करने के लिए अपने क्षेत्र का नाम पासवर्ड इसी एक त्रुटि संदेश तक पहुंचने में असमर्थ (pword_check)

किसी भी मदद बहुत सराहना की जाएगी

कोड:

public function submit() 
{ 


    $this->load->library('form_validation'); 

    $this->form_validation->set_rules('username', 'Username', 'required|max_length[30]|xss_clean'); 
    $this->form_validation->set_rules('pword', 'Password', 'required|max_length[30]|callback_pword_check|xss_clean'); 

    if ($this->form_validation->run() == FALSE) 
    { 
     $this->login(); 
    } 
    else 
    { 
     echo 'Success'; die(); 
    } 
} 

public function pword_check($str) 
{ 

    if ($str == 'test') 
    { 
     $this->form_validation->set_message('pword_check', 'The %s field can not be the word "test"'); 
     return FALSE; 
    } 
    else 
    { 
     return TRUE; 
    } 
} 
+0

कौन सा सीआई आप उपयोग के संस्करण ??? – Saty

+1

मैं कोडइग्निटर संस्करण 3.0.1 –

उत्तर

14

xss_clean is no longer part of form validation in Codeingitore 3

बस से xss_clean को दूर अपने सत्यापन Roul

$this->form_validation->set_rules('pword', 'Password', 'required|max_length[30]|callback_pword_check'); 

आप सच में, सच है कि शासन लागू करने की आवश्यकता है, तो आप अब भी सुरक्षा हेल्पर, जो xss_clean() एक नियमित रूप से समारोह के रूप में होता है और इसलिए यह भी एक सत्यापन नियम के रूप में इस्तेमाल किया जा सकता लोड करना चाहिए।

मैं hmvc CodeIgniter में call_backs के साथ काम करने के लिए समाधान पाया application/config/autoload.php :

$autoload['helper'] = array('security'); 

करने के लिए जाना या, अपने फ़ॉर्म सत्यापन

$this->load->helper('security'); 
+0

का उपयोग कर रहा हूं आपके लिए मूल्यवान समय धन्यवाद। मैंने पहले से ही xss_clean चीज़ को हटाने का प्रयास किया है, मैंने सुरक्षा सहायक को ऑटो लोड किया है लेकिन पासवर्ड फ़ील्ड के लिए त्रुटि संदेश अभी भी प्रदर्शित हो रहा है। –

+0

यह एक बहुत ही सरल कोड है जो मुझे नहीं पता कि इस त्रुटि का कारण क्या है। –

+0

अपना संदेश '$ this-> form_validation-> set_message (' pword_check ', "% s फ़ील्ड शब्द परीक्षण नहीं हो सकता है"); और – Saty

12

हैलो दोस्तों से पहले। मैं दूसरों के लिए समाधान पोस्ट करना चाहता हूं।

समाधान:

1. MY_Form_validation.php फ़ाइल बनाएँ पुस्तकालयों फ़ोल्डर और उसमें कोड निम्न पेस्ट में।

if (!defined('BASEPATH')) exit('No direct script access allowed'); 
    class MY_Form_validation extends CI_Form_validation 
    { 

    function run($module = '', $group = '') 
    { 
     (is_object($module)) AND $this->CI = &$module; 
     return parent::run($group); 
    } 
} 

  1. और if ($this->form_validation->run() == FALSE)if ($this->form_validation->run($this) == FALSE) करने के लिए thats सब लोगों को बदलने ..
+0

धन्यवाद आदमी! आप एक उद्धारक हैं! – Sayed

+0

पुस्तकालय या कोर? –

+0

सीआई 3.0.x में पुस्तकालयों में जोड़ा गया, @kev_m –

0

इस त्रुटि के लिए कारण आपने सुरक्षा को लोड नहीं किया है y सहायक निम्नलिखित कॉन्फ़िगरेशन फ़ोल्डर में autoload.php के साथ सुरक्षा सहायक सक्षम करता है या आप सीधे इस पोस्ट की पिछली पंक्ति

और यदि सबकुछ के बावजूद आपको वास्तव में इसकी आवश्यकता है, तो एप्लिकेशन पर जाएं/config/autoload।PHP:

$ ऑटोलोड ['सहायक'] = सरणी ('सुरक्षा'); या, आपके फॉर्म सत्यापन से पहले $ यह-> लोड-> सहायक ('सुरक्षा');

0
public function pword_check($str) 
{ 

    if ($str == 'test') 
    { 
     $this->form_validation->set_message( __FUNCTION__ , 'The %s field can not be the word "test"'); 
     return FALSE; 
    } 
    else 
    { 
     return TRUE; 
    } 
} 

// इसकी अच्छी तरह से काम कर रहा

https://github.com/bcit-ci/CodeIgniter/issues/3908

+0

कोड केवल उत्तर ही प्रोत्साहित नहीं हैं क्योंकि वे भविष्य के पाठकों के लिए अधिक जानकारी प्रदान नहीं करते हैं, कृपया जो आपने लिखा है उसके बारे में कुछ स्पष्टीकरण प्रदान करें – WhatsThePoint

संबंधित मुद्दे