不确定如何标题这个问题,但是在这里。我总是使用CodeIgntier的表单验证类来验证我的表单信息。在我的应用程序中,有一些表单被其他注册的成员使用。例如,如果有人想在博客文章上发表评论,他们会使用该文章的表单。
如果我的控制器是:
class Blog extends CI_Controller { function postcomment($blog_id){ if($this->form_validation->run('comment') == FALSE){ $this->parser->parse('comment_form.tpl', $data); } else { $this->blog_post->create_comment($blog_id); } } }
我的模特是......
class Blog_Post extends CI_Model { function create_comment($blog_id){ $data = array( 'title' => $this->input->post('title'), 'content' => $this->input->post('content'), 'date' => time() ); $this->db->insert('blog_comments', $data); }
是否需要使用preg_match,strlen,isset等在实际插入之前验证信息?
答案 0 :(得分:0)
这取决于您的需求,而CI的form validation
确实提供了regex,unique,max_length,isset .. etc
验证。
如果您有任何自定义验证,例如计算或百分比>比输入no.s为此,它还提供callback
函数来验证总数取决于您的需求
一些主要的验证规则是
以下是您需要完成form_validation
所需的所有内容答案 1 :(得分:0)
即使Codeigniter已经实现了安全性。最好的做法是实施以下内容;
我在这里阅读http://ellislab.com/codeigniter/user-guide/general/security.html。
答案 2 :(得分:0)
但是如果您之前使用form_validation验证 插入由帖子发送的数据
我应该启用XSS吗?
$ this-> input-> post('any_input',TRUE);
//campos de la tabla y datos a insertar
$dataUsuario = array(
'matr_user' => 'guest-'.date("whis"),//hora-min-seg-dia
'pass_user' => $passHash,
'nom_user' => capitalizar($this->input->post('tx_nom')),
'ap_user' => capitalizar($this->input->post('tx_ap')),
'am_user' => capitalizar($this->input->post('tx_am')),
'sex_user' => $this->input->post('tx_sex'),
'nomfull' => $nom_completo,
'fnaci_user' => $this->input->post('tx_naci'),
'curp_user' => $this->input->post('tx_curp'),
'callenum_user' => capitalizar($this->input->post('tx_calle')),
'col_user' => capitalizar($this->input->post('tx_col')),
'cp_user' => $this->input->post('tx_cp'),
'ciud_user' => capitalizar($this->input->post('tx_city')),
'estad_user' => capitalizar($this->input->post('tx_estado')),
'fech_ins_user' => $this->fecha_server(),
'time_ins_user' => $this->hora_server(),
'ip_ins_user' => $this->ip_usuario(),
'operador_ins_user' => $this->session->userdata('username'),
'fech_upd_user' => '0000-00-00',
'time_upd_user' => '00:00:00',
'ip_upd_user' => '0',
'operador_upd_user' => 'sinuser'
);
//inicia transacciones
$this->db->trans_start();
//insertamos datos
//llamamos al metodo del modelo que realiza las inserciones
$consulta_idUser = $this->usuario->create_usuario($dataUsuario);