gpt4 book ai didi

codeigniter - 使用表单验证删除不必要的错误消息

转载 作者:行者123 更新时间:2023-12-02 04:17:21 26 4
gpt4 key购买 nike

使用 Codeigniter,我可以创建一个用于用户身份验证的函数。
我有一个函数,我调用它来检查给定的用户名/密码是否有效。
我遇到的问题是,如果没有给出密码,我不希望代码显示“无效登录”。它应该显示“需要密码”或类似的内容。

我想我不能要求密码字段,在这种情况下,空白密码无论如何都会导致登录失败。但是,我想确保不会发生 sql 注入(inject)。

$this->form_validation->set_rules('username','username','required|callback_authenticate');
$this->form_validation->set_rules('password','password','required');

$this->form_validation->set_message('authenticate','Invalid login. Please try again.');

认证功能
function authenticate() {

return Current_User::checkLogin($this->input->post('username'),
$this->input->post('password'));
}

最佳答案

我建议您创建一个回调函数,您可以将其用作可以添加到 set_rules() 的规则。像这样的功能:

$this->form_validation->set_rules('password','Password','required|your_callback_function');

这样,required规则肯定会被首先调用。当用户输入密码时,将检查下一条规则。在这种情况下,它会通过您的回调验证函数。如果用户未在您的密码字段中输入任何内容,则错误消息应自动显示需要密码。

如果要防止密码字段上的 SQL 注入(inject),请添加 sha1md5规则到密码字段。

查看 回调:您自己的验证函数 Form Validation library .

此外,如果您将使用 Active Record class而不是手动输入查询,您的查询将更安全,因为系统会自动转义值。您还可以选择使用准备好的语句来防止 SQL 注入(inject)。

关于codeigniter - 使用表单验证删除不必要的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com