CodeIgniter将表单字段值设为小写

whlutmcx  于 2022-12-07  发布在  其他
关注(0)|答案(4)|浏览(119)

我刚刚开始学习如何使用CodeIgniter,从来没有使用过任何框架之前,所以我只知道一点是如何流.现在我有一个问题,我想设置输入用户名为小写,我不知道如何写函数的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参数中,还是放在一个函数中?
如果将其分离,应该如何操作?如何将最终的用户名数据插入数据库?
有没有好心人能帮我?
先谢谢你。

fafcakar

fafcakar1#

您可以为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

j8ag8udp

j8ag8udp2#

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'));
}
4nkexdtk

4nkexdtk3#

我会尽我所能的解释!你是否正确设置了你的数据库配置文件?你是否正确设置了数据库?确保在你这样做之前一切都很好。
下面是一些正在发生的事情

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

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

if($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文档,这是非常棒的

sbtkgmzw

sbtkgmzw4#

关于Codeigniter 4,在确认期间不再可能修改数据。
他们在官方文件中添加了以下信息:您还可以使用任何返回布尔值并允许至少一个参数(要验证的字段数据)的本地PHP函数。验证库从不更改要验证的数据

相关问题