ASP服务器端表单验证类

网站设计中表单验证(ASP) 网站设计中表单验证(ASP)作者:刘巍邮箱:support@ceocio.net网址:http://www.ceocio.net    一般的动态网站需要通过表单来收集用户信息,或者实现与用户的交互,虽然我们相信绝大多数人士既然选择了填写表单就会认真的完成,但是亦不能避免无聊人士乱填表单,况且即使一个正常用户在填写过程中也会无意识的出现一些填写错误,或者他们忘记了填某些选项。通常为了避免这 阅读详情

<%
'***************************************************************
'    文件名:     validate.asp
'    描述:       表单验证类
'    作者:       Stone <1182140@qq.com>
'    版本:       0.1 Beta <2008 年 12 月 19 日>
'***************************************************************
Class Validator

Private objRegExp
Private blnRemoteSubmit
Private ErrorMessage
Private intValidateCount
Private arrValidate()

Private Sub Class_Initialize()
   ErrorMessage = ""
   intValidateCount = 0
   blnRemoteSubmit = False
End Sub

Public Property Get Err()
    Err = ErrorMessage
End Property

Public Sub Add(Element, RegType, Para, ErrMsg)
    Redim Preserve arrValidate(3,intValidateCount)
    arrValidate(0,intValidateCount) = Element
    arrValidate(1,intValidateCount) = RegType
    arrValidate(2,intValidateCount) = Para
   arrValidate(3,intValidateCount) = ErrMsg
    intValidateCount = intValidateCount + 1
End Sub

Public Function Validate
   If Not blnRemoteSubmit Then
         Dim strHttpReferer, strServerName
         strHttpReferer = CStr(Request.ServerVariables("HTTP_REFERER"))
         strServerName = CStr(Request.ServerVariables("SERVER_NAME"))
         If InStr(strHttpReferer, strServerName) <> 8 Then
           ErrorMessage = "程序不允许站外提交"
           Validate = False
           Exit Function
         End If
    End If
    Dim i
    For i = 0 To intValidateCount - 1
         Select Case arrValidate(1, i)
          Case "d"
              Check CheckDate(arrValidate(0, i), arrValidate(2, i)), arrValidate(3, i)
           Case "s"
              Check CheckString(arrValidate(0, i), arrValidate(2, i)), arrValidate(3, i)
           Case "n"
              Check CheckNumber(arrValidate(0, i), arrValidate(2, i)), arrValidate(3, i)
     Case "k"
              Check CheckSelect(arrValidate(0, i)), arrValidate(3, i)
          Case Else
              Check CheckRegExp(arrValidate(0, i), arrValidate(1, i)), arrValidate(3, i)
         End Select
    Next
    If ErrorMessage = "" Then
         Validate = True
    Else
         Validate = False
    End If
End Function

Private Sub Check(blnFunction, strErrMsg)
    If Not blnFunction Then
      ErrorMessage = ErrorMessage & strErrMsg &"<br>"
    End If
End Sub

Private Function CheckString(Element, strPattern)
CheckString = True
   If isN(Element) Then
    CheckString = False
    exit function
   end if
   Dim lens : lens = IfThen(instr(strPattern,",")>0,split(strPattern,","),array(strPattern,strPattern))
   if not lensCheck(Element,lens(0),lens(1)) then CheckString = False
End Function

Private Function CheckNumber(Element, strPattern)
CheckNumber = True
   If not IsNumber(Element) Then
    CheckNumber = False
    exit function
   end if
   Dim lens : lens = IfThen(instr(strPattern,",")>0,split(strPattern,","),array(strPattern,strPattern))
   if not sizeCheck(Element,lens(0),lens(1)) then CheckNumber = False
End Function

Private Function CheckDate(Element, strPattern)
CheckDate = True
   If not isDate(Element) Then
    CheckDate = False
    exit function
   end if
   Dim lens : lens = IfThen(instr(strPattern,",")>0,split(strPattern,","),array(strPattern,strPattern))
   if not dateCheck(Element,lens(0),lens(1)) then CheckDate = False
End Function

Private Function CheckSelect(Element)
CheckSelect = True
   If isN(Element) Then
    CheckSelect = False
   end if
End Function

Private Function CheckRegExp(Element, RegType)
   Set objRegExp = New RegExp
    With objRegExp
         .Global = False
         .IgnoreCase = True
    End With
    objRegExp.Pattern = RegType
    CheckRegExp = Eval(objRegExp.Test(Element))
End Function

Public Function IfThen(C,T,F)
   If C Then IfThen = T Else IfThen = F End If
End Function

Public Function isN(str)
   isN = False
   If IsArray(str) Then
    Exit Function
   End If
   If str = "" or IsEmpty(str) or IsNull(str) Then isN = True
End Function

Public Function IsNumber(Str)
   IsNumber = false
   If Not IsN(Str) And isNumeric(Str) Then IsNumber = true
End Function

Public Function lensCheck(Str,n1,n2)
   lensCheck = True
   if len(Str)<cint(n1) or len(Str)>cint(n2) then lensCheck = False
End Function

Public Function sizeCheck(Str,n1,n2)
   sizeCheck = True
   if Str*100<n1*100 or Str*100>n2*100 then sizeCheck = False
End Function

Public Function dateCheck(date,n1,n2)
   dateCheck = True
   if DateDiff("d",n1,date)<0 or DateDiff("d",n2,date)>0 then dateCheck = False
End Function

End Class

dim action:action=request.querystring("action")
if action="save" then

Dim objValidator : Set objValidator = New Validator
With objValidator
   .Add request.form("username"), "s","4,14", "用户名称不正确"
   .Add request.form("password"), "s","6,14" ,"密码不正确"
   .Add request.form("age"), "n","20,99","年龄不正确"
   .Add request.form("date"), "d","2008-1-1,2008-12-1","日期不正确"
   .Add request.form("OS"), "k","","操作系统没有选择"
   .Add request.form("Province"), "k","","省份没有选择"
   .Add request.form("Favorite"), "k","","爱好没有选择"
   .Add request.form("postcode"), "^[1-9]/d{5}$","","邮编不正确"
   .Add request.form("qq"), "^[1-9]/d{4,9}$","","QQ不正确"
End With

If Not objValidator.Validate Then
   Response.Write(objValidator.Err)
   Set objValidator = Nothing
   response.end
end if

end if

%>

<html>
<title>我的表单验证类</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<body>
<form name="theForm" id="demo" action="?action=save" method="post" >
<table align="center">
    <tr>
   <td>用户名:</td><td><input name="userName" ></td>
</tr>
<tr>
   <td>密码:</td><td><input name="Password" ></td>
</tr>
<tr>
   <td>日期:</td><td><input name="date" ></td>
</tr>
<tr>
<tr>
   <td>年龄:</td><td><input name="age" ></td>
</tr>
<tr>
   <td>邮编:</td><td><input name="postcode" ></td>
</tr>
<tr>
   <td>QQ:</td><td><input name="QQ" ></td>
</tr>
<tr>
   <td>操作系统:</td><td><select name="OS" ><option value="">选择您所用的操作系统</option><option value="Win98">Win98</option><option value="Win2k">Win2k</option><option value="WinXP">WinXP</option></select></td>
</tr>
<tr>
   <td>所在省份:</td><td>广东<input name="Province" value="1" type="radio">陕西<input name="Province" value="2" type="radio">浙江<input name="Province" value="3" type="radio">江西<input name="Province" value="4" type="radio" ></td>
</tr>
<tr>
   <td>爱好:</td><td>运动<input name="Favorite" value="1" type="checkbox">上网<input name="Favorite" value="2" type="checkbox">听音乐<input name="Favorite" value="3" type="checkbox">看书<input name="Favorite" value="4" type="checkbox" ></td>
</tr>
<tr>
   <td colspan="2"><input name="Submit" type="submit" value="提交"></td>
</tr>
</table>
</form>

</body>
</html>

ASP文件是一种用于服务器端编程的文件格式 ASP代表Active Server Pages(活动服务器页面),它是一种由微软开发的技术,用于创建动态的、交互式的网页。当客户端请求访问一个ASP文件时,服务器会执行其中的脚本代码,并将生成的HTML内容返回给客户端浏览器进行显示。通过ASP文件,开发人员可以利用服务器端脚本语言的强大功能,创建出丰富、动态的网页应用程序。ASP文件中的服务器端脚本可以包含各种控制结构、变量、函数等,以实现更复杂的逻辑和功能。同时,ASP文件还可以与数据库进行交互,读取和写入数据,实现动态内容的生成和展示。 阅读详情

相关推荐

15、ASP.NET表单验证全解析

本文全面解析了ASP.NET中的表单验证机制,包括客户端和服务器端的实现方式。从基础的数据回显优势到复杂的验证规则设置,再到错误信息的优化显示,内容涵盖了验证的重要性、具体实现步骤以及常见问题的解决方案。通过合理结合客户端与服务器端验证策略,开发人员可以提升Web应用的数据安全性与用户体验。

dapp9builder的博客 53

简单的表单验证类 ASP Validator

当前版本:ver 0.1 beta 下载:http://nowgoo.zhuosong.com/validator.rar1、ASP Validator 简介 ASP Validator 是基于 ASP 的一个表单验证类,用于表单的服务器端验证。比如,验证表单中一个文本框(假设元素名为 UserEmail)的值是否为正确的电子邮件格式,按传统的方法您可能会编写这样的代码:

Nowgoo 1204

快速搭建本地ASP测试环境:迷你ASP服务器指南

本文还有配套的精品资源,点击获取 简介:迷你ASP服务器是一款为开发者和爱好者设计的轻量级应用程序,用于在本地计算机上运行和测试ASP脚本。它无需安装完整的IIS或其他大型服务器软件,便于开发者快速查看和调试ASP程序,降低了出错的风险。本文将介绍迷你ASP服务器的安装、使用、安全与性能优化以及调试和错误处理方法。 1. ASP脚本基础和工作原理 1.1 A...

weixin_35751194的博客 1968

ASP.NET表单验证

在表单提交的时候,经常需要对录入信息的长度、格式、内容等进行验证,以便获得合理的信息。在ASP.NET开发中主要的验证方法,总结了一下,主要有一下几种。 1、使用验证控件  这属于客户端验证,微软开发人员将最常用的验证功能进行了封装,使得我们开发效率明显提高,而且特别是自定义验证控件,非常灵活,我们可以自行设计验证逻辑。但是验证控件收到了浏览器的限制,记得在一次开发过程中,使用FireFo

王伯仙的博客 5292

ASP.NET Core表单验证的实战指南

本文深入探讨了ASP.NET Core中表单验证的机制与实践,包括服务器端和客户端的验证策略,以及如何使用ModelState进行错误处理和显示。通过实例说明了如何个性化验证消息,以及如何应用POST-REDIRECT-GET模式来避免重复提交。同时强调了客户端验证对于提升用户体验的重要性,并讨论了如何在ASP.NET Core中实现客户端验证。

weixin_35756373的博客 495

ASP.NET Web表单验证控件实战指南

在Web开发中,表单验证是确保用户输入有效性的关键步骤,它不仅提高了数据质量,还能增强系统的安全性。WebValidates控件作为ASP.NET应用中常用的验证工具,提供了丰富的客户端和服务器端验证功能,帮助开发者快速实现各种验证场景。本章将介绍WebValidates控件的基础知识和核心功能,为后续章节的深入探讨打下基础。WebValidates控件支持多种验证类型,包括但不限于必填项验证、格式验证、范围验证等。

weixin_30218749的博客 1259

asp.net高级教程(四)---实战篇(上)

结合论坛用户操作谈asp.net表单验证(上)有了前面的知识,现在我们要进入实战。做过asp的朋友都知道表单验证是个比较头疼的问题,有经验的Web程序员有这么一句话,那就是客户端不相信服务器端,服务器端不相信客户端。什么意思呢,就是说做表单验证时服务器端程序不能假定客户端程序是正确的而不加检测,这样如果客户端关闭javascript就可能造成出错,而如果只做服务器端检测,那么需要提交到服务器端再返

★★创造未来★★ 1015

Web表单验证:简单,熟练和通用的实现指南

在实际应用中,为了给用户提供更加友好和准确的反馈信息,开发者通常会根据不同的验证规则定制个性化的验证消息。通过设置验证函数的messages属性,可以针对不同的验证规则指定不同的错误提示信息。本章深入探讨了客户端JavaScript验证的技术细节,包括基本的验证方法和验证框架与库的选择。同时,也提供了验证消息的定制和呈现方式的说明,包括如何设置自定义的验证消息和控制消息的样式与位置。

weixin_33628677的博客 1066

asp.net高级教程(三)-实战篇

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 416

ASP服务器.exe

asp服务器,主要用于架设局域网内本地服务器,比如开发一个H5页面想要在手机上浏览,首先新建一个文件夹,并新建一个index.html,然后在根目录运行此从程序,cmd获取IP地址,即可在浏览器下通过本机ip访问该目录【同一个局域网内皆可访问此地址】,手机笔记本一个wifi下就可共享

本地asp服务器环境快速搭建

不用安装双击运行即可,快速搭建一个asp的运行环境,方便在手机上调试项目。

ASP.NET表单验证方法详解

在表单提交的时候,经常需要对录入信息的长度、格式、内容等进行验证,以便获得合理的信息。在ASP.NET开发中主要的验证方法,我总结了一下,主要有一下几种,如有不足之处请朋友们予以指出。 1、使用验证控件 这属于客户端验证,微软开发人员将最常用的验证功能进行了封装,使得我们开发效率明显提高,而且特别是自定义验证控件,非常灵活,我们可以自行设计验证逻辑。但是验证控件收到了浏览器的限制,记得在一次

song_zheng的专栏 1145

为什么我的Win11家庭版找不到BitLocker?教你两种强制关闭加密的隐藏方法

本文解释了Win11家庭版为何缺少BitLocker功能,并提供了两种强制关闭加密的隐藏方法。通过注册表修改和PowerShell命令,用户可以调出隐藏的加密控制面板或直接操控加密引擎,解决家庭版设备加密的管理难题。

weixin_42535703的博客 1776

ASP.NET Core 表单验证助手 —— FormHelper

ASP.NET Core 表单验证助手 —— FormHelper FormHelper 是一个开源的 ASP.NET Core 项目,主要使用 C# 编程语言。该项目旨在帮助开发者轻松地将服务器端验证转换为客户端验证,而无需编写任何 JavaScript 代码。 核心功能 FormHelper 的核心功能包括: 自动表单验证:它可以将服务器端的验证规则自动转换到客户端,与 Fluent Val...

gitblog_00897的博客 595

集成电路模拟版图入门-版图基础学习笔记(一)

集成电路设计模拟版图入门笔记,了解版图的定义、意义、工具、设计流程。认识版图及版图组成的两大部件,版图编辑器有哪些,电路图编辑器,了解工艺厂商等。

weixin_52955333的博客 2万+

AI工作流革命:从n8n到Sora2,揭秘自动化视频创作的底层逻辑

本文深入探讨了AI工作流在自动化视频创作中的应用,重点介绍了n8n、Coze和Sora2的组合如何实现从链接输入到视频输出的全流程自动化。通过三层架构解析、关键技术模块优化及成本控制策略,这套方案显著提升了视频生产效率,适用于电商、热点追踪等多种场景。

gg901的博客 1089

html表单 asp验证,在ASP网站设计中表单验证

一般的动态网站需要通过表单来收集用户信息,或者实现与用户的交互,虽然我们相信绝大多数人士既然选择了填写表单就会认真的完成,但是亦不能避免无聊人士乱填表单,况且即使一个正常用户在填写过程中也会无意识的出现一些填写错误,或者他们忘记了填某些选项。通常为了避免这种情况,开发者会给表单加一个验证的过程,在表单数据提交到服务器之前或者服务器之后对用户填写的数据进行验证,若遇到错误的填写则返回要求用户进行更正...

weixin_34902502的博客 297

形式化方法(Formal Methods)和人工智能(Artificial Intelligence)

一、形式化方法(Formal Methods) ​ 形式化方法最初应用在硬件上,验证硬件的正确性,后面逐渐应用到软件编程中,能够在软件中找到软件的错误,验证软件的安全可靠。形式化方法更加接近离散数学,所以其应用难度非常大,同时学习成本也较高。再加上形式化方法的大多数理论还停留在上个世纪,由于程序越来越复杂,导致形式化方法进行验证需要大量人工和时间,以至于现在绝大部分软件开发人员完全没有考虑过这个方法,甚至没有听说过这个名词。 ​ 形式化方法最新的应用成果是在工业上,比如一些极其重要且对安全性要求极高的领域(

qq_37030400的博客 4008

学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面

学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面 ...

weixin_30500289的博客 94

深入解析AXI-Stream协议中的TVALID与TREADY握手时序

本文深入解析AXI-Stream协议中TVALID与TREADY的握手时序,通过实际案例和代码示例详细说明三种典型握手场景及其应用。文章还探讨了常见握手失败案例的解决方法,并介绍了TLAST、TKEEP等高级信号的使用技巧,帮助开发者优化FPGA设计中的数据传输效率。

weixin_29200485的博客 341

给宇树Go2机器人装‘眼睛’:在Jetson Orin Nano上从零部署YOLOv5的保姆级避坑实录

本文详细介绍了在Jetson Orin Nano上为宇树Go2机器人部署YOLOv5视觉系统的完整流程,涵盖硬件选型、环境配置、模型优化及系统集成等关键步骤。针对机器人应用场景特有的离线部署、版本冲突和实时推理等挑战,提供了实用的解决方案和性能优化技巧,帮助开发者快速实现机器人的视觉能力升级。

weixin_29169505的博客 378

表单验证-客户端验证和服务器端验证

验证方式作用:数据验证种类:减少服务器端的工作量和运算量,提高验证效率;代码量太大,太繁琐了,效率低下! 2.jquery的Validate插件验证 jquery的Validate插件封装了验证规则; 1.引入jQuery脚本和Validate插件脚本 或者,使用字节跳动提供的CDN 2.Validate插件脚本实施验证3.Validate插件可提供的验证如下:默认校验规则 一 、模型注解验证(服务器端验证) 1.基于ASP.NET MVC框架的内置数据验证 1.1验证方式:1.2 用法://正则表达

qq_42222127的博客 1257

K230在原有LVGL控件触摸屏控制的基础上,增加USB鼠标控制!

搭配CanMV图形化编程,中小学生可快速开发“键鼠控制AI小游戏”“智能画板”等趣味项目,降低AI学习门槛;:HDMI屏幕+键鼠组合,直接在开发板上调试代码、修改ISP参数、查看AI推理日志,无需频繁连接电脑;:打造带交互的AI设备(如工业控制面板、智能显示器),鼠标操作菜单、键盘输入指令,体验媲美小型PC;:无网络场景下,通过键盘直接向AI设备录入数据、配置参数,适配野外监测、本地工控等场景。,自动识别、快速响应,完美适配交互控制、参数调试、数据输入等场景。

weixin_47446386的博客 147
上一篇: 'md5加密算法
下一篇: SQL通用防注入程序 完美版
Ray_Adon
博客等级 码龄18年 34粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值