CodeIgniter - 使用活动记录清理数据

时间:2014-05-19 07:10:26

标签: php mysql codeigniter

当我设置

$config['global_xss_filtering'] = FALSE; and  $config['csrf_protection'] = FALSE;
在application / config / config.php中

然后将输入成功输入数据库。但是当我将它们设置为True时,数据库不接受这些值,即条目没有添加到数据库中。任何人都可以帮忙吗? / p>

controller-function:验证和加载模型

function __construct(){
        parent::__construct();
        $this->load->database();
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('form_validation');
    }
function validate(){    
        $config=array(
                       array('field'=>'First_name',
                     'label'=>'firstname',
                         'rules'=>'trim|required|htmlspecialchars'),
                  array('field'=>'Last_name',
                    'label'=>'lastname',
                        'rules'=>'trim|required'),
                 array('field'=>'Password',
                   'label'=>'password',
                   'rules'=>'trim|required'),
                 array('field'=>'Re-password',
                       'label'=>'re-password',
                            rules'=>'trim|required'),
                 array('field'=>'Email',
                     'label'=>'email',
                           'rules'=>'trim|required|valid_email|is_unique[users.email]')
        ); 
  $this->form_validation->set_rules($config);
        if($this->form_validation->run()==False){
            echo validation_errors();       
        }   
        else{
            $this->load->model("v/register","foo");
            $p=$this->foo->registeration();  
        } 
    }  

模型类

class register extends CI_Model
{
    function __construct(){
        parent::__construct();
        $this->load->helper('form');
        $this->load->library('form_validation');
    }

    function registeration(){
                      $data=array(
                    'First_name'=>$_POST['First_name'],
                    'Last_name'=>$_POST['Last_name'],
                    'Username'=> NULL,
                    'Email'=>$_POST['Email'],
                    'Password'=>$_POST['Password']
                    ) ;
        $this->db->insert('users',$data);
    }
}

我使用的是html标签而不是form_open() 我正在使用ajax.controller调用控制器表单视图加载模型

1 个答案:

答案 0 :(得分:1)

使用

打开表单
echo form_open('controller/method');

这将生成带有唯一令牌的隐藏输入。使用不会

另外,使用

获取输入
'First_name'=>$this->input->post('First_name')

不要使用

'First_name'=>$_POST['First_name']