php - CodeIgniter - 使用事件记录清理数据

标签 php mysql codeigniter

当我设置

$config['global_xss_filtering'] = FALSE; and  $config['csrf_protection'] = FALSE;

在 application/config/config.php 中,输入成功地输入到数据库中。但是当我将它们设置为 True 时,数据库不接受这些值,即条目未添加到数据库中。有人可以帮忙吗?

Controller 功能:验证和加载模型

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 表单 View 。 Controller 加载模型

最佳答案

打开表单

echo form_open('controller/method');

这将生成一个带有唯一标记的隐藏输入。使用不会

此外,获取输入

'First_name'=>$this->input->post('First_name')

不要使用

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

关于php - CodeIgniter - 使用事件记录清理数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23731741/

相关文章:

php - 如何从 PHP 中同一类中的其他方法访问变量?

php - 连接变量的奇怪问题

具有动态列的 MySQL 数据透视表查询

php - 遍历记录,更新一条记录,然后退出

php - 避免\r\n\on mysql 导入

php - 从具有相同路由的 URL 隐藏 Codeigniter Controller 名称

php - 如何将 mysql 中的行乘以表单中的数量?

php - 将数据库中的日期存储在数组中

php - 为什么我的 preg_match 结果翻倍了?

php - 如何同步同一台机器上不同MySQL数据库的两个表?