07.前端校验和后端校验

课程内容

前端校验 后端校验 实战

课程目标

通过配置前后端校验,规范用户输入

课程概要

我们制作页面,一套增删改查仅仅是基础,我们还必须限制用户,什么情况下可以进行增删改查。

一个系统是否安全、是否智能,主要看各种限制是否完善、合理。

对限制的实现,我们称之为校验,一般可以分成前端校验和后端校验。

前端校验

在请求发送给服务器之前,进行合理性检测,允许或拦截这个请求,就是前端校验。

在Enhancer中,前端校验主要有以下几种方法:

  1. 各种窗口、按钮、组件的显示、可用条件

  2. 事件中的执行前询问、事件触发时脚本

  3. 表单组件还提供了各种输入域校验

==注意:前端校验一般仅仅是进行友好性提示,安全的系统都不应该相信前端校验结果。==

后端校验

前端校验通过之后,请求会发送到服务器,此时服务器需要对请求再次进行校验,校验通过之后才能对数据进行操作。

在Enhancer中,后端校验主要有以下几种方法:

  1. 数据库中表的唯一键、非NULL、触发器……

  2. SQL中校验,通过where条件过滤

  3. SQL执行前后端脚本

实战

之前,我们只是简单的对按钮做了校验(未选中教师时,不允许修改、删除),现在我们以课程页面为例,学习一下Enhancer前后端校验知识。

  • 前端校验:课程名不能为空

    • 在按钮上限制,为空时不允许点击按钮 check01

      ==注意:如果没有正确配置更新状态事件,将无法限制或限制得不到解除。==

      效果: check_res01

    • 在事件中限制,点击按钮后,检查输入内容并通过弹框提示用户 check02

      ==注意:必须显式返回false,否则请求仍然将发送到服务器。==

      效果: check_res02

    • 在表单控件上作出限制 check03

      ==注意:需选定合适的触发时机,如果选择提交时校验,在提交事件中需要指定检查窗口。==

      效果: check_res03

  • 后端校验

    • 数据库中表的唯一键、非NULL、触发器…… check04

      ==注意:索引类型选择UNIQUE,这就是唯一索引,建立唯一索引的列不允许有两行相同的值,NULL例外。此外,如果数据库中有status标记为2(删除)的同名课程,也是不允许的。==

      效果: check_res04_1

      可见这个提示效果,对最终用户来说并不是非常友好,我们可以增加一个错误对照码ER_DUP_ENTRY(上图圈起来的部分)

      check_res04_2

      修改之后的效果就友好多了 check_res04_3

    • SQL中校验,通过where条件过滤 check05_1 check05_2

      ==注意:这种校验方法难度比较大,需要一定的SQL(用于校验)+JS(用于提示)技能。但是可以更自由的控制校验方式,比如:允许status为2(删除状态)的同名课程存在。==

      效果: check_res05_1

      为了更好的展示,先把唯一索引删除: check_res05_2

results matching ""

    No results matching ""