zoukankan      html  css  js  c++  java
  • 关于ci中的表单提交问题

    codeIgniter是一种PHP开源框架,它会自带一些表单验证的功能,安全过滤等等。

    这里的验证字段对应的是网页中的表单,而不是数据库中的字段,这一点要认清楚了。可以通过

    $this->load->library('form_validation');
    来加载验证辅助函数,通过

    $this->form_validation->set_rules('username', 'Username', 'required');
    来对username进行验证,这里的username对应的是表单中的属性,而不是数据库中username。

    if ($_POST) {
                //加载验证辅助函数
                $this -> load -> helper(array('form', 'url'));
                $this -> load -> library('form_validation');
                //对表单进行过滤验证处理
                $this->form_validation->set_rules('name', 'Name', 'trim|strip_tags|required|max_length[40]|xss_clean');
                $this->form_validation->set_rules('company', 'Company Name', 'trim|strip_tags|max_length[150]|xss_clean');
                $this->form_validation->set_rules('country', 'Country', 'trim|strip_tags|max_length[140]|xss_clean');
                $this->form_validation->set_rules('email', 'Email', 'trim|strip_tags|required|max_length[140]|xss_clean');
                $this->form_validation->set_rules('title', 'Title', 'trim|strip_tags|max_length[140]|xss_clean');
                $this -> form_validation -> set_rules('phone', 'Telephone', 'trim|strip_tags|max_length[40]|xss_clean');
                $this->form_validation->set_rules('desc', 'Message', 'trim|strip_tags|xss_clean');
                if ($this -> form_validation -> run() == FALSE) {
                      redirect($_SERVER['HTTP_REFERER']);
                } else {
                        //如果通过验证,将获取的数据保存
                        //获取过滤后的数据
                        $name = $this -> input -> post('name');
                        $company = $this -> input -> post('company');
                        $email = $this -> input -> post('email');
                        $phone = $this -> input -> post('phone');
                        $country = $this -> input -> post('country');
                        $title = $this -> input -> post('title');
                        $desc = $this -> input -> post('desc');
                        if (!$title) {
                            $title = "a new contact message has been arrived";
                        }
                    $data = array('name' => $name, 'company_name' => $company,
                    'email' => $email, 'country' => $country, 'title' => $title,
                     'tel' => $phone, 'message' => $desc);
                    $this -> db -> insert('contact', $data);
                    $this->session->set_flashdata('contact_success', 'your request has been sent successfully,
                    we will contact you via email in a short time!');
                    redirect($_SERVER['HTTP_REFERER']);
                    

                }

    上面的代码是对表单进行验证的代码,表单的字段与数据库字段有一点点区别,对其进行验证时,要以表单字段为基准。而且获取数据,要在验证之后获取,否则保存的数据库的信息,还是过滤之前的信息,比如有空格,比如有<br>等等。这是一个注意点。

    要能够正确的理解表单验证的原理,编程的时候,才不会出错。今天验证电话时,我用的是数据库中的字段tel,而不是表单中的字段phone,结果怎么用都没有效果。非常苦恼。

  • 相关阅读:
    java进阶(36)--IO和Properties联合使用(配置文件)
    java进阶(34)--File类、目录复制
    java进阶(33)--IO流
    java进阶(32)--Collections工具类
    java进阶(31)--TreeSet集合、TreeMap集合、自平衡二叉树
    解决Excel打开空白或慢的问题
    CCS
    CCS
    CCS
    CCS
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/2570255.html
Copyright © 2011-2022 走看看