我刚开始学习如何使用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参数中吗?或者最好放一个函数?
如果将它分开,应该如何完成以及如何将最终的用户名数据插入到数据库中?
那里有什么样的灵魂可以帮助我吗?
提前致谢。
答案 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'));
}