2011-11-22 14 views
8

क्या कोई व्यक्ति कोडिनेटर के लिए कस्टम सत्यापन नियम बनाने के बारे में कुछ सलाह दे सकता है।कोडनिर्देशक कस्टम ईमेल सत्यापन नियम

जिस वेबसाइट पर मैं काम कर रहा हूं वह विश्वविद्यालय के छात्रों के लिए है और केवल उपयोगकर्ताओं को पंजीकरण करने की अनुमति देता है यदि वे अपने विश्वविद्यालय के ईमेल पते का उपयोग करते हैं।

केवल ईमेल कि के साथ समाप्त की अनुमति देते हैं:

यहाँ सत्यापन के प्रकार मैं प्राप्त करने के लिए कोशिश कर रहा हूँ का एक उदाहरण है

array(
    '0' => '@uni-email-1.com', 
    '1' => '@uni-email-2.com', 
    '2' => '@uni-email-3.com', 
    '3' => '@uni-email-4.com', 
); 

मैं अभी भी काफी CodeIgniter के लिए नया हूँ और मुझे यकीन है कि कैसे नहीं कर रहा हूँ इस प्रकार के सत्यापन को बनाने के लिए।

किसी भी सहायता की बहुत सराहना की है!

धन्यवाद

उत्तर

11

ज़रूर, यह कैसे है?

function index() 
{ 
    $this->load->helper(array('form', 'url')); 

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


    $this->form_validation->set_rules('email', 'Email', 'required'); 
    $this->form_validation->set_rules('email', 'Email', 'valid_email'); 
    $this->form_validation->set_rules('email', 'Email', 'callback_email_check'); 

    if ($this->form_validation->run() == FALSE) 
    { 
     //fail 
    } 
    else 
    { 
     //success 
    } 
} 

function email_check($str) 
{ 

    if (stristr($str,'@uni-email-1.com') !== false) return true; 
    if (stristr($str,'@uni-email-2.com') !== false) return true; 
    if (stristr($str,'@uni-email-3.com') !== false) return true; 

     $this->form_validation->set_message('email', 'Please provide an acceptable email address.'); 
     return FALSE; 

} 
+0

यह पूरी तरह से काम किया! आपके समय के लिए बहुत बहुत धन्यवाद। – RipzCurlz

1

यह वास्तव में सीआई से PHP से अधिक संबंधित है। असल में, आपको प्रदान की गई प्रत्येक समाप्ति स्ट्रिंग में मिलान डालने वाले ईमेल पते को स्ट्रिंग करना चाहिए। यदि कोई मैच है - पंजीकरण करने की अनुमति दें, यदि नहीं - आउटपुट अलर्ट या कुछ और इसे अनुमति न दें।

1

आपके विश्वविद्यालय LDAP निर्देशिका है, तो आप प्रमाणीकरण इस पर बजाय किसी अन्य आधार होने के कर सकते हैं। एकल साइन ऑन इस तरह के विश्वविद्यालयों

1

निम्नलिखित की तरह कुछ की कोशिश करो जैसे संस्थानों में इस्तेमाल के लिए एक बहुत अच्छा सिस्टम है,

$formatArr = array("@uni-email-1.com", "@uni-email-2.com" "@uni-email-3.com"); 

$this->form_validation->set_rules('email', 'Email', 'callback__check_email'); 

//then the validation function 
function _check_email() { 
    $email = $this->input->post("email"); 
    $emailLastPart = array_pop(explode("@", $email)); 
    if(!in_array($emailLastPart, $formatArr)) { 
     $this->form_validation->set_message('email', 'Please provide valid email address.'); 
     return FALSE; 
    } 
    return TRUE; 
} 

आशा है कि यह मदद करता है

+0

आपके समय और इनपुट के लिए धन्यवाद, हालांकि मैं इस कोड को काम करने में असमर्थ था। – RipzCurlz

4
public function index() 
    { 
     $this->load->helper(array('form', 'url')); 

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

     $this->form_validation->set_rules('email', 'Email', 'required|callback_email_check'); 

     if ($this->form_validation->run() == FALSE) 
     { 
      $this->load->view('form'); 
     } 
     else 
     { 
      $this->load->view('formsuccess'); 
     } 
    } 

    public function email_check($email) 
    { 
     if(stristr($str,'@uni-email-1.com') !== false) return true; 
     if(stristr($str,'@uni-email-2.com') !== false) return true; 
     if(stristr($str,'@uni-email-3.com') !== false) return true; 

     $this->form_validation->set_message('email', 'Please provide an acceptable email address.'); 
     return FALSE; 
    } 
0

आप द्वारा एचटीएमएल 5 सरल कोड

इसकी पुष्टि कर सकते हैं

पैटर्न

के साथ

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