2014-07-20 118 views
0

我想要做的是顯示錶單驗證錯誤,如果有任何和prepopulcate窗體。表單提交後保護值codeigniter

查看

<input type="hidden" value="<?php echo $_GET['project_id']; ?>" name="project_id" id="project_id"> 
<input type="text" value="<?php echo set_value('name'); ?>" name="name" id="name"> 

控制器

$validation_rules = $this->access_m->rules; 
     $this->form_validation->set_rules($validation_rules); 
     if($this->form_validation->run()){ 
      // process the form 

     }else{ 


      $data= array(
        'subview'=>'access/access', 
       ); 
      $this->load->view('layout', $data, FALSE); 
     } 

現在的問題是什麼,我可以預填充值的名稱,但如何預填充爲project_id字段的值。由於該字段的值是從GET方法中提取的,是否有任何方法可以將其傳回給視圖以便我可以再次使用它。

我可以使用重定向並將項目ID添加到URL作爲example.com/access?project_id=23,但然後我會鬆散的值預填充到其餘的表單字段。

任何解決方案?

+1

* *危險**:此代碼[易受XSS影響](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))。用戶輸入需要在插入HTML文檔之前進行轉義! – Quentin

+0

@Quentin你能否詳細說明一下。因爲我對codeigniter很陌生,對此知之甚少。 – prakashchhetri

+1

這個問題沒有任何CodeIgniter特有的。這是涉及HTML的任何類型的服務器端腳本的問題。鏈接闡述。 – Quentin

回答

0

創建接受參數example.ufo/controller/accept/<id>

從現在開始,你不需要隱藏字段的方法,你的id是方法的詳細信息中入店這裏http://ellislab.com/codeigniter/user-guide/general/controllers.html#passinguri

例如:

<?php 
class User extends CI_Controller { 

    public function accesible($id = false) { 
     //necessary checks, is id valid? is it numeric? is id in database?... does user have permission to work with element with this ID? 

     echo $id; 
    } 
} 
?>