2014-07-20 80 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; 
    } 
} 
?>