2011-11-11 11 views
0

私はCodeIgniterでrecaptchaを使用しようとしています。私はいくつかのオンライン指示に従って、最後に私は1つのステップで完了しました。ただ、recaptchaをビューに渡すだけですが、ユーザー入力を検証することはできません。ここでrecaptcha with codeigniter、私はそれをビューに入れることはできますが、それを検証することはできません

は私のコントローラです:

function download_application() 
{ 
    //load the libraries 
    $this->load->library('form_validation'); 
    $this->load->library('recaptcha'); 
    $this->lang->load('recaptcha');  
    //common data 
    $data['title'] = $_POST['application_name']; 
    $data['header'] = $_POST['application_name']; 
    $data['sub_header'] = 'تحميل استمارة قبول المشروع';  
    $data['title'] = $_POST['application_name']; 
    $data['recaptcha'] = $this->recaptcha->get_html();  
    //form validation 
    $this->form_validation->set_error_delimiters('<span class="notification">', '</span>'); 
    $this->form_validation->set_message('required', 'هذا الحقل مطلوب ولا يمكن تجاهله'); 
    $this->form_validation->set_rules('name', 'لابد من ادخال اسمك بالكامل', 'required'); 
    $this->form_validation->set_rules('email', 'لابد من ادخال بريدك الالكترونى', 'required|email'); 
    $this->form_validation->set_rules('country', 'لابد من ادخال بلدك', 'required'); 
    $this->form_validation->set_rules('phone', 'لابد من ادخال رقم تليفونك', 'required'); 

    //form submitted 
    if($this->input->post('recaptchasubmit')){ 
     if($this->form_validation->run() == FALSE) 
     { 

      $this->load->view('header', $data); 
      $this->load->view('download', $data); 
      $this->load->view('footer', $data); 


     } 
     else 
     { 

      $this->load->view('header', $data); 
      $this->load->view('download', $data); 
      $this->load->view('footer', $data); 

     } 
    }  
    else{ 

      $this->load->view('header', $data); 
      $this->load->view('download', $data); 
      $this->load->view('footer', $data); 

    } 

} 

、ここでは、私の見解では

<?php 
    $form_attributes = array(
     'class' => 'form' 
    ); 
    $btn_download = array(
     'type'  => 'image', 
     'src'  => base_url().'images/download.gif', 
     'name'  => 'recaptchasubmit', 
     'width'  => '103', 
     'height' => '33', 
     'value'  => 'تحميل' 
    ); 
    $name = array(
     'type' => 'text', 
     'name' => 'name', 
     'id' => 'name', 
     'value' => set_value('title') 
    );      
    $email = array(
     'type' => 'text', 
     'name' => 'email', 
     'id' => 'email', 
     'value' => set_value('email') 
    );        
    $country = array(
     'type' => 'text', 
     'name' => 'country', 
     'id' => 'country', 
     'value' => set_value('country') 
    );         
    $phone = array(
     'type' => 'text', 
     'name' => 'phone', 
     'id' => 'phone', 
     'value' => set_value('phone') 
    ); 
?>      
<?php echo form_open($base_url . 'arabia/download_application', $form_attributes); ?> 
<fieldset> 
    <div class="input_container"> 
     <label class="required">الاسم بالكامل</label> 
     <div class="input"><?php echo form_input($name); ?></div> 
     <?php echo form_error('name'); ?> 
    </div> 
    <div class="input_container"> 
     <label class="required">البريد الالكترونى</label> 
     <div class="input"><?php echo form_input($email); ?></div> 
     <?php echo form_error('email'); ?> 
    </div> 
    <div class="input_container"> 
     <label class="required">البلد</label> 
     <div class="input"><?php echo form_input($country); ?></div> 
     <?php echo form_error('country'); ?> 
    </div> 
    <div class="input_container"> 
     <label class="required">التليفون</label> 
     <div class="input"><?php echo form_input($phone); ?></div> 
     <?php echo form_error('phone'); ?> 
    </div> 
    <?php echo $recaptcha; ?> 
    <?php echo form_error('recaptcha_response_field'); ?> 

    <?php echo form_hidden('application_name', $title); ?> 
    <?php echo form_hidden('generated_id', $title); ?> 
</fieldset> 
<span class="download"><?php echo form_submit($btn_download);?></span>      
<?php echo form_close();?> 
+2

Sidenote:共通のビューと共通のデータを使用している場合、すべての条件の中でそれらを繰り返すのはなぜですか?コードを外に置くだけで、コードは読みやすくなります。また、なぜ$ _POSTと$ this-> input-> post()を混ぜるのですか? –

+0

あなたは正しいです、これは私がここにコードとコードを書くだけなので起こりました...私はこのフォームを扱いながら、私は今それを修正しました – ahmedsaber111

答えて

2

であるあなたはユーザー入力を検証することはできません何を意味するのですか?フォームを提出したときに何が起こっていますか?あなたはどこにリダイレクトされますか?あなたは何を見ますか?あなたがreCAPTCHAの文字/数字は、いずれかの方法をボックス表示されます - 私はこれまで、あなたの質問から見ることができます

唯一のことは、検証が通るかどうかは関係なく、

$data['recaptcha'] = $this->recaptcha->get_html(); 

を渡しているということです。検証が次のように渡された場合は、上書きする必要があります。

$data['recaptcha'] = "validation passed"; 
関連する問題