前端校验和服务端的校验

在网页中进行注册的时候,要经过两次校验,一次是根据用户填入的信息在注册界面直接给予信息提示,也就是前端的表单校验,除此之外再用户填写完信息后还要在服务端再次进行校验。只有经过两次校验,才能确保用户数据的正确,防止产生安全隐患。

前端的校验:

用户界面输入,给与友好提示,表达用户在输入数据时输入正确,但不会因此而决定服务端的数据的插入。

//1.引用JS文件(以验证邮箱为例)

<script src="../js/jquery-1.7.1.js"></script>

//2.当文本框失去焦点的时候,直接调用 validateEmail方法

 $(function () {
            $("#userMail").blur(function () {
                validateEmail();
            });
            $("#validataCode").blur(function () {
                validateCode();
            });
            $("#btnRegister").click(function () {
                validateEmail();
                validateCode();
                //表单序列化生成一个Jason文件
                var par = $("#").serializeArray();
            });
        });  

//3.用正则表达式判断输入的信息格式是否正确,封装了validateEmail方法

function validateEmail() {
            var val = $(this).val();
            //数据是否存在
            if (val != "") {
            //正则表达式格式的写法:
                var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
                //输入的数值正确;
                if (reg.test(val)) {
                    $("#msg").css("display", "none");
                    //用Action方法:可以判断多个类型的数据
                    $.post("/ashx/validateReg.ashx", { "action": "mail", "usermail": val }, function (data) {
                        $("#msg").css("display", "block");
                        $("#msg").text(data);
                    })
                }
                else {
                    $("#msg").text("邮箱格式错误");
                }
            } else {
                $("#msg").text("邮箱名不能为空");
            }
        };

//4.一般处理程序的方法:(以判断邮箱为例)

//以Action值为mail,调用 CheckUserMail的封装方法;
public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string action = context.Request["action"];
            if (action=="mail")
            {
                CheckUserMail(context);
            }
            else if (action=="code")
            {
                string validateCode = context.Request["validateCode"];
                if (WebCommon.CheckValidateCode(validateCode))
                {
                    context.Response.Write("验证码正确");
                }
                else
                {
                    context.Response.Write("验证码错误");
                }
            }
        }

//5.完成校验,(用户邮箱)

 private void CheckUserMail(HttpContext context)
        {
            string userMail = context.Request["userMail"];
            if (userManager.CheckUserMail(userMail))
            {
                context.Response.Write("邮箱已经存在");
            }
            else
            {
                context.Response.Write("邮箱可以注册");
            }
        }

服务端校验:

//1.触发btn事件,判断数据是否存在

 $("#btnRegister").click(function () {
                validateEmail();
                validateCode();
                //表单序列化生成一个Jason文件
                var par = $("#").serializeArray();
            });
        

//2.在服务端校验,在aspx.cs文件中写进方法:

//判断用户数据数据是否正确;
 protected void Page_Load(object sender, EventArgs e)
        {
            //是否为首次登录;
            if (IsPostBack)
            {
                if (WebCommon.CheckValidateCode(Request["txtCode"]))
                {
                   //调用AddUserInfo的方法;
                    AddUserInfo();
                }
            }
        }

//3.若数据正确,将数据插入表中

 private void AddUserInfo()
        {
            Model.User userInfo = new Model.User()
            {
                 //获取前段数给实体;
                Address = Request["txtAddress"],
                LoginId = Request["txtName"],
                LoginPwd = Request["txtPwd"],
                Mail = Request["txtEmail"],
                Name = Request["txtRealName"],
                Phone = Request["txtPhone"]
            };
            userInfo.UserState.Id = Convert.ToInt32(UserStateEnum.NormalState);
            UserManager userManager = new UserManager();
            string msg = string.Empty;
            if (userManager.Add(userInfo,out msg)>0)
            {
                //进行页面跳转;
                Session["userinfo"] = userInfo;
                Response.Redirect("/Default.aspx");
            }
            else
            {
                //跳转至错误页,注册信息发生错误;
                Response.Redirect("/ShowMsg.aspx?msg=" + msg+"&txt=首页"+"&url=/Default.aspx");
            }
        }
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值