首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将表单输入数据与自定义codeigniter表单验证器中的数据库数据进行比较?

在CodeIgniter中,可以通过自定义表单验证器来比较表单输入数据与数据库数据。下面是一个实现的步骤:

  1. 创建一个自定义的表单验证器类,可以命名为Custom_validator,并将其放置在CodeIgniter的application/libraries目录下。
代码语言:php
复制
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Custom_validator
{
    protected $CI;

    public function __construct()
    {
        $this->CI =& get_instance();
        $this->CI->load->database(); // 加载数据库类
    }

    // 自定义验证规则方法
    public function compare_data($str, $field)
    {
        list($table, $column) = explode('.', $field, 2);

        $query = $this->CI->db->select($column)
                             ->from($table)
                             ->where($column, $str)
                             ->get();

        if ($query->num_rows() === 0) {
            return FALSE; // 数据库中不存在该数据
        } else {
            return TRUE; // 数据库中存在该数据
        }
    }
}
  1. 在CodeIgniter的配置文件application/config/form_validation.php中,添加自定义验证规则的配置。
代码语言:php
复制
$config = array(
    'custom_validation' => array(
        array(
            'field' => 'input_field',
            'label' => 'Input Field',
            'rules' => 'required|compare_data[table_name.column_name]'
        )
    )
);
  1. 在控制器中使用自定义验证规则。
代码语言:php
复制
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Your_controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->library('custom_validator'); // 加载自定义验证器类
    }

    public function your_form_submit()
    {
        $this->form_validation->set_rules($this->config->item('custom_validation'));

        if ($this->form_validation->run() === FALSE) {
            // 验证失败
        } else {
            // 验证成功
        }
    }
}

在上述代码中,compare_data方法用于比较表单输入数据与数据库中的数据。在配置文件中,compare_data[table_name.column_name]指定了要比较的数据库表和字段。在控制器中,通过加载自定义验证器类,并在表单验证规则中使用compare_data规则来调用自定义验证规则。

这样,当表单提交时,CodeIgniter会自动调用自定义验证器类中的compare_data方法进行验证,根据返回结果判断验证是否通过。

注意:以上代码仅为示例,实际应根据具体情况进行调整和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

登录注册小案例实现(使用Django中的form表单来进行用户输入数据的校验)

,这个表单可以用来验证数据的合法性还可以用来生成HTML代码 所以这个登录注册案例我们就来使用这个django自带的form来生成前端页面以及验证数据. ②关于django form表单的使用: 创建一个...使用is_valid()方法可以验证用户提交的数据是否合法,而且HTML表单元素的name必须和django中的表单的name保持一致,否则匹配不到....(比如此例中request.POST获取的HTML表单元素的name属性值与form表单中的name是一样的:username,password) is_bound属性:用来表示form是否绑定了数据,...: 下面这个函数clean()是用于进行数据验证的,本来我想也写在此form表单校验里,但是后面在视图函数里写业务逻辑时发现, 如果验证成功,用户需要登录->这就意味着需要设置session...""" # def clean(self): # 前端表单用户输入的数据经过上面过滤后再结合后台数据库所有数据进行分析 # # 校验数据库中是否有该用户 #

4.4K00

登录注册小案例实现(使用Django中的form表单来进行用户输入数据的校验)

登录注册案例 1.登录注册第一步——创建模型生成数据表: (1)名为mucis的app下的models.py文件中创建: from django.db import models # Create your...models.CharField(max_length=30, unique=True) password = models.CharField(max_length=50) (2)执行映射文件生成数据表...:别看我这注册和登录的页面一模一样,你就以为这俩直接共用一个模板就行了!...真正使用的时候注册需要的信息是比登录要多,所以这俩不可能使用同一个模板。本处为了方便讲解,所以只建了个含有用户名和密码的模型。所以会造成注册和登录可以用同一个模板的假象!...不信你看我在下面注册模板中又随便加了个输入框,但是其实它没用,我只是为了强调这个问题! <!

4.7K00
  • 讲解-加载静态页

    接下来,您将创建一个新闻部分,该部分将从数据库中读取新闻项。最后,您将添加一个表单以在数据库中创建新闻项。...本教程将主要关注: 模型-视图-控制器基础知识 路由基础 表格验证 使用“查询生成器”执行基本数据库查询 整个教程分为几页,每页仅解释CodeIgniter框架功能的一小部分。...您将浏览以下页面: 简介,此页面为您提供了预期的概述。 静态页面,它将教您控制器,视图和路由的基础知识。 新闻部分,您将在这里开始使用模型,并将进行一些基本的数据库操作。...创建新闻项,这将引入更高级的数据库操作和表单验证。 结论,这将为您提供进一步阅读和其他资源的一些指示。 享受您对CodeIgniter框架的探索。...在你的浏览器中输入 [your-site-url]index.php/pages/view 来查看你的页面。

    3.6K10

    CI一些优秀实践

    首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值。...安全问题很重要 在接收任何数据到你的程序之前,不管是表单提交的 POST 数据、COOKIE 数据、URI 数据、XML-RPC 数据、还是 SERVER 数组中的数据,我们都推荐你实践下面的三个步骤:...验证数据以确保符合正确的类型, 长度, 大小等. (有时这一步骤也可取代第一步骤) 在提交数据到你的数据库之前将其转换....可以参考CI手册上的安全指南 以及 输入和安全类。也许最重要的原则是在把数据提交到数据库或文件系统之前检查所有用户的输入。 SQL注入。...通过保护你的邮件表单,评论表单,以及其他各种免费用户提交的数据来防止垃圾信息,一个简单的方法是只允许一个IP/User客户端在一分钟之内只能提交一次,一个比较好的方式是使用 Captcha ,CI2中内置了一个

    3.4K50

    盘点7款顶级 PHP Web 框架

    Laravel的优势:易于学习;无缝数据迁移;在 PHP 社区中很受欢迎;MVC 架构支持;大量培训材料(文档、图像和视频教程);模板引擎;简单的单元测试等。...这个功能强大且易于使用的框架适用于各种 Web 应用。 Yii2 的优势:AJAX 支持;处理错误的有效工具;自定义默认设置;简单的第三方组件集成;强大的社区支持等。...Zend的优势:实时在线调试;PHP 单元测试工具;连接数据库向导;加密编码工具;具有前端技术支持的拖放编辑器;MVC 组件;卓越的前端技术支持工具;简单的云 API;支持第三方组件;数据加密等。...它还具有这些增强的安全功能:SQL 注入预防;跨域请求(CSRF)保护;输入验证;跨站点脚本(XSS)保护;该框架带来了代码生成和脚手架功能,以加速开发过程。...使用可重用组件,开发时间减少了许多模块,如表单创建、对象配置、模板等。可以直接从旧组件构建,节约了大量成本。

    4.7K00

    PHP 后端表单验证和请求处理

    数据表和模型类 我们会将用户提交的请求数据保存到 messages 表中,所以我们需要在数据库中新增这张数据表: -- -- 数据库: `blog` -- -- -------------------...做好上述准备后,接下来,我们在 HomeController 控制器的 contact 方法中,编写表单数据获取、验证和保存代码: public function contact() { if...因此,filter_var 函数可以根据传入的第二个参数标识进行不同的操作,既可以用于字段验证,也可以用作消毒处理,还可以通过回调函数进行额外的自定义操作,更多细节请参考 PHP 官方文档关于该函数的介绍...至此,我们就完成了 POST 表单请求的所有后端处理逻辑,在浏览器打开联系表单页面,如果输入了错误的手机号,会返回对应的验证错误消息: ?...如果所有表单数据都通过验证,则会看到消息发送成功提示: ? 当然,这里还有可以优化的地方,比如,在请求数据验证失败后,返回提交的请求数据填充对应的输入框,以免用户重新输入。

    2.6K30

    PHP面试题,面试必看!

    ’的概念,尝试使用‘对象’进行数据的使用,或者使用’db’方法进行数据库的操作,也提醒一下部分‘滥 用’’toArray’的开发者,’all’或’select’结果是对象的数组集合,是无法使用’toArray...==Lavarel优点==: 1.支持Composer 2.框架结构比较清晰,注重代码的模块化(抽象了中间件,任务,服务等)和可扩展性,路由系统快速高效 3.支持处理跨站请求伪造,在进行form表单...env环境文件,方便了系统的配置和不同平台的开发 ==Lavarel缺点==: 1.基于组件式的框架,所以比较臃肿 ==CodeIgniter简单介绍==:CodeIgniter 是一套小巧但功能强大的...2.配置简单,全部的配置使用PHP脚本来配置,执行效率高; 3.具有基本的路由功能,能够进行一定程度的路由; 4.具有初步的Layout功能,能够制作一定程度的界面外观; 5.数据库层封装的不错,...答: 1. get是从服务器上获取数据,post是向服务器传送数据。 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。

    2K20

    3分钟短文:十年窖藏,Laravel告诉你表单验证的“正确姿势”

    引言 上一章我讲到了使用FormBuilder让后端开发者快速构建前端表单页面,而为了示例, 直接在store方法内把表单数据一股脑存到了数据库。 这!很!危!险!...[img] 本文教你正确地验证用户表单提交的数据,那就是十余年坚定好用的Laravel验证器。...把Request请求的表单数据原封不动地传入到create方法内, 并写入了数据库。 当然,在Event模型内,我已经加上 $fillable 用于标记那些可以写入数据的字段了,但是仍然不够。...用户的输入从来都不能直接拿来用,我要做一个关卡,层层把关,有效的数据放进去,无效的数据挡在门外。...Validator就是这样设计的! 写在最后 本文初步介绍了laravel验证器内置规则的使用,以及如何将验证信息渲染到视图文件内。 并介绍了自定义验证错误提示信息的使用方法。

    1.7K30

    国产开源极致的微前端框架,成本低,速度快,原生隔离,功能强

    与市面上表单不一样的特点有: 1.一套表单三种模式一起设计 2.生成一套代码同时适应PC,ipad,手机端的预览。 3.支持在线编辑vue代码逻辑,不与可视化设计器生成的vue代码进行冲突。...我的Mybatis语法引擎能够动态解析Json实体,获取其属性值进行拼装SQL,那我将Mybatis语法配置提取到前端网页中,保存到数据库中,设置好两者约定好提交json实体结构, 然后封装一个通用Api...5.迁移与重复非常方便,因为整个配置只有一张表,只要将一条数据迁移过去,功能就迁移过去了,与数据库的藕合性低。...扩展思维 1.系统之间接口的对接,接口返回的json格式是固定的,如何将接口数据对接我们系统中,结合定时任务的配置是可以完美解决,各种系统数据对接和输出,实现万能对接接口 2.MQ队列,MQ队列接收也是实体...路由支持表单数据为条件控制流程走向,业务数据会自动保存,也可以每个节点进行设置回调Api和执行的动态Mybatis语法接口,表单设计器如下: 流程发起PC端 流程信息 图片 审批记录 图片 流程走向

    1.9K20

    Django 学习笔记之表单

    举个栗子,用户使用浏览器访问一个页面,在页面的搜索框中输入图书的名称,想获取所有销售该图书的商店。Web 站点需要获取图书名称的信息作为数据库查询条件,所以将数据拦截并获取图书的名称。...然后通关查询数据库,最后将查询到的所有商店信息返回给浏览器进行渲染显示。另外,博客系统中的评论模块也是这个原理。因此,在一些站点上会爆出 XSS 漏洞。...原因可能是编码者没有对用户提交的数据进行过滤或者过滤不严,直接存储到数据库中。 2 HTML 表单 这部分是给不熟悉 HTML 表单同学准备的,如果你已经掌握这部分知识。可以选择直接跳过。...方法二:自定义 Form 自定义表单是比较高级用法,有时候通过 Model 自动创建的 Form 无法满足自己需求。...譬如:Model 中的某些属性我不需要显示在页面上,或数据处理方式比较复杂,这个时候你就需要自定义 Form。自定义 Form 是直接继承 Form。

    2.6K30

    PHP 表单处理与验证

    在 PHP 中,表单处理与验证是每个 Web 开发者都必须掌握的重要技能。...本篇博客将详细介绍 PHP 中表单的处理与验证,从基础的表单提交到高级的表单数据验证技巧,帮助你理解如何通过 PHP 进行高效、安全的表单处理。...表单是 HTML 中的一种元素,允许用户输入数据并通过提交按钮将数据发送到服务器。在 Web 开发中,表单用于收集用户输入的信息,并通过 HTTP 请求将数据传输到服务器。...'];$email = $_POST['email'];1.3 提交表单数据表单数据提交后,服务器会接收到来自用户的输入信息,并根据需求进行处理。...对输入数据进行清理和验证是确保 Web 应用安全的重要步骤。2.2.1 防止 SQL 注入SQL 注入是攻击者通过提交恶意 SQL 语句来操控数据库的一种攻击方式。

    11600

    在 Laravel 控制器中进行表单请求字段验证

    在 Web 应用中,用户提交的数据往往是不可预测的,因此一个非常常见的需求是对用户提交的表单请求进行验证,以确保用户输入的是我们所期望的数据格式。...作为一个灵活的框架,Laravel 提供了多种方式对表单请求进行验证,你可以在控制器中通过 $this->validate() 方法验证用户请求,也可以通过单独的表单验证类定义验证规则,再将其注入到相应的控制器方法...在表单页面显示错误信息 我们需要修改下 form.blade.php 中的表单代码,在 Blade 模板中可以通过 $errors 获取验证错误信息,通过 old() 辅助函数可以获取用户上次输入数据:...,提交数据,验证失败的情况下,就可以回显用户上次输入数据和验证错误信息了: ?...对于大量请求字段,或者复杂的请求验证,都写到控制器方法中显然会导致控制器的代码变得臃肿,可维护性也比较差,所以我们下一篇教程将讨论如何将验证代码移出控制器这一话题,并且根据项目需求灵活实现自定义验证规则

    5.8K10

    【Web开发】Flask框架基础知识

    在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能 以最常见的登录验证为例,这里以普通实现方式和WTF表单方式实现进行比较。...app.run() 代码说明: 后端使用request.form.get的来获取前端表单数据 验证主要来验证两次登录输入密码是否一致 提示信息使用flash来进行映射,前端使用get_flashed_messages...FormField 把表单作为字段嵌入另—个表单 FieldList —组指定类型的字段 WTForms常用验证函数: 验证函数 说明 DataRequired 确保字段中有数据 EqualTo 比较两个字段的值...,常用于比较两次密码输入 Length 验证输入的字符串长度 NumberRange 验证输入的值在数字范围内 URL 验证URL AnyOf 验证输入值在可选列表中 NoneOf 验证输入值不在可选列表中...数据库 在flask中,可以利用SQLAlchemy来进行数据库的操作。

    2.1K20

    Django学习-第十三讲(下):表单(一)forms.form、forms.modelform

    1. html表单和django中的表单的区别 HTML中的表单: 单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言。...2.2 django 表单常用验证器 在验证某个字段的时候,可以传递一个validators参数用来指定验证器,进一步对数据进行过滤。...2.3. django 表单自定义验证 有时候对一个字段验证,不是一个长度,一个正则表达式能够写清楚的,还需要一些其他复杂的逻辑,那么我们可以对某个字段,进行自定义的验证。...比如在注册的表单验证中,我们想要验证手机号码是否已经被注册过了,那么这时候就需要在数据库中进行判断才知道。...比如表单上验证的字段没有包含模型中所有的字段,这时候就可以先创建对象,再根据填充其他字段,把所有字段的值都补充完成后,再保存到数据库中。

    3.3K40

    【分享】 纯 js 表单控件 —— 让 “增改查” 更轻松!

    3、 可以获取用户输入的数据,可以进行验证 4、 可以进行排版 5、 修改数据时,可以把原有数据绑定到表单。...3、 第三方脚本实现复杂功能,比如选择日期、在线编辑、数据验证等。 4、 Js脚本根据json的描述,创建表单(table形式),创建表单里面的控件(比如文本框),然后对表单和控件进行修饰。...5、 提取用户输入的数据,然后进行验证。然后可以用ajax的方式提交给服务器。(提交部分表单控件不负责)。 思路: 1、 对表单进行归纳总结,抽象出来几种情况。...re) { return; } //获取用户输入的信息,json格式,然后可以ajax提交到数据库...选择日期的,很好很强大 3、 kindereditor。选择他是因为可以直接在页面里使用。因为是纯js的表单控件,所以服务器控件形式的在线编辑器是不好用了。 4、 数据验证。

    3.5K81

    Django使用普通表单、Form、以及modelForm操作数据库方式总结

    Django使用普通表单、Form、以及modelForm操作数据库主要应用于增删该查的情景下,流程通用如下,只是实现方式不一样: 进入填写表单页面; 在表单页面填写信息,并提交...; 表单数据验证 验证成功,和数据库进行交互(增删改查); 验证成功,页面提示表单填写失败; 一、Django使用普通表单操作数据库 1、html代码: 的数据保存在form.cleaned_data,model的create函数保存到数据库       obj = models.Article.objects.create(**form.cleaned_data...> 具体Form在前端展示以及校验方式、以及操作model的方式(增删改查)不展开,此处主要说明方式 三、Django使用插件modelForm表单操作数据库 和方法二的使用表单...Form相比,modelForm具有Form中所有的验证钩子,使用django的modelForm表单不需要重新定义Form,比较方便。

    2.7K30

    前端HTML5面试官和应试者一问一答

    image 1.HTML5表单增加的输入类型 url类型:专门为输入url地址定义的文本库,在验证输入文本的格式时,如果文本框中的的内容不符合url地址的格式,会提示验证错误。...email类型:专门是为输入email地址定义的文本框,在验证输入的文本的格式时,如果文本框中的内容不符合email地址的格式,会提示验证错误。...,是浏览器内的本地RDBMS关系型数据库管理系统,可以使用SQL查询。...html5增加的表单类型email等,都包含一个原始的类型验证,如果用户输入的内容与表单类型不符合,typeMismatch属性将返回true,否则反之。...h. customError属性,使用自定义的验证错误提示信息,在有些情况下不适合使用浏览器内置的验证错误提示信息,需要自定义,当输入值不符合语义规则,页面会提示自定义的错误信息。

    2K50

    Spring Security用户认证和授权(一)

    Spring Security提供了多种身份验证方式,例如表单身份验证、基本身份验证、LDAP身份验证等。表单身份验证表单身份验证是最常见的身份验证方式之一。...用户输入用户名和密码,服务器将这些凭据与存储在数据库中的用户信息进行比较。如果凭据匹配,则用户将被授权访问受保护的资源。...下面是一个简单的示例,展示如何配置Spring Security以进行表单身份验证。...如果用户输入的用户名和密码匹配,他们将被授予"USER"角色,并被允许访问受保护的资源。这个示例还定义了一个自定义登录页面,以及一个允许用户注销的选项。...基本身份验证基本身份验证是一种简单的身份验证方式,它要求用户在访问受保护的资源之前提供用户名和密码。这些凭据是使用Base64编码发送到服务器。

    63740
    领券