CodeIgniter将表单字段值设置为小写

时间:2014-02-13 07:32:27

标签: php codeigniter

我刚开始学习如何使用CodeIgniter并且之前从未使用任何框架,所以我只知道流程是怎样的。现在我有1个问题,我想将输入用户名设置为小写,我不知道如何为convert_lowercase()编写函数。

以下是我的代码:

public function signup_validation()
    {
        $this ->load->library('form_validation');

        $this->form_validation->set_rules('username', 'Username', 'required|trim|is_unique[userinfo.username]|convert_lowercase');
        $this->form_validation->set_rules('password', 'Password', 'required|trim');
        $this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');

        $this->form_validation->set_message('is_unique', 'That Username Already Exists.');

        if($this->form_validation->run()){
        }else{
            $this->load->view('signup');
        }
    }

public function convert_lowercase()
    {
        strtolower($this->input->post('username'));
    }

我不确定我是否正确行事。

最好只将strtolower放入set_rules参数中吗?或者最好放一个函数?

如果将它分开,应该如何完成以及如何将最终的用户名数据插入到数据库中?

那里有什么样的灵魂可以帮助我吗?

提前致谢。

3 个答案:

答案 0 :(得分:7)

您可以为CodeIgniter提供表单验证的php本机函数。以下是您的代码应该如何

public function signup_validation()
{
    $this ->load->library('form_validation');

    $this->form_validation->set_rules('username', 'Username', 'required|trim|is_unique[userinfo.username]|strtolower');
    $this->form_validation->set_rules('password', 'Password', 'required|trim');
    $this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');

    $this->form_validation->set_message('is_unique', 'That Username Already Exists.');

    if($this->form_validation->run()){
    }else{
        $this->load->view('signup');
    }
}

您应该在表单验证中查看他们的文档:http://ellislab.com/codeigniter%20/user-guide/libraries/form_validation.html

答案 1 :(得分:2)

我会尽力解释我能做到的最好!您是否正确设置了数据库配置文件?您是否正确设置了数据库?在你这样做之前确保这一切都很好..

以下是一些正在发生的事情

 if($this->form_validation->run()){
    //Right here is what happens if the form passes your test!
    $this->insert_user();

    }else{
        $this->load->view('signup');
    }

如果($ this-> form_validation-> run())接受您给出的规则,如果它返回“true”,则在if语句中运行,否则它将返回到注册页面

这是我为

设置示例的函数
public function insert_user()
{

        $data = array(


            'username' => strtolower($this->input->post('username')),
            'password' => $this->input->post('password'),





        );

        $this->db->insert('users', $data);




}

我还建议您考虑加密密码和其他CI文档,这太棒了

答案 2 :(得分:2)

callback_添加到规则中。

$this->form_validation->set_rules('username', 'Username', 'required|trim|is_unique[userinfo.username]|callback_convert_lowercase');

并且回调函数应该返回一些值。

public function convert_lowercase() {
  return strtolower($this->input->post('username'));
}