asp.net发送手机验证码

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="register.ascx.cs" Inherits="register" %>
<link href="css/prism.css" rel="stylesheet" />
<link href="css/gh_materialize.css" type="text/css" rel="stylesheet" media="screen,projection" />
<script src="js/jquery-2.1.4.min.js" type="text/javascript"></script>
</script>
<script type="text/javascript">
    if (!window.jQuery) {
        document.write('<script src="bin/jquery-2.1.1.min.js"><\/script>');
    }
</script>
<script type="text/javascript">
        function ButtonClick() {
        
            //参数,如果要向后台传入多个参数,可以用分割的方式进行传入
            //例如:name,age,sex,..... 然后后台进行split分割
            var 我是变量 = $( "#name" ).val();
            //此处为
            <%=Page.ClientScript.GetCallbackEventReference(this, "我是变量", "点按钮调用我", null)%>
        }
        function 点按钮调用我( ret ) {
            alert( ret )
        }
    </script>
<script src="bean/materialize.js" type="text/javascript"></script>
<script src="js/code.js" type="text/javascript"></script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div style="width: 960px; min-height: 500px; margin-left: auto; margin-right: auto;">
    <div style="min-height: 500px; margin-left: auto; margin-right: auto;">
        <div>
            <div style="float: left; width: auto">
                <h4 class="header">
                    加入我们:
                </h4>
            </div>
            <div style="float: right; width: auto">
                已有账号,<a href="login_user.aspx">马上登陆 </a>
            </div>
            <div style="clear: both;">
            </div>
        </div>
        <div class="col s12 m9 l10">
            <div id="input" class="section scrollspy">
                <div class="row">
                    <form class="col s12">
                    <div class="row">
                        <%--<div class="input-field col s6">
                            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                            <label for="last_name">
                                账号</label>
                        </div>--%>
                        <div class="input-field col s6">
                            <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
                            <label for="last_name">
                                昵称</label>
                        </div>
                    </div>
                    <div class="row">
                        <div class="input-field col s12">
                            <asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox>
                            <label for="password">
                                密码</label>
                        </div>
                    </div>
                    <div class="row">
                        <div class="input-field col s12">
                            <asp:TextBox ID="TextBox4" runat="server" TextMode="Password"></asp:TextBox>
                            <label for="password">
                                确认密码</label>
                        </div>
                    </div>
                   <%-- <div class="row">
                        <div class="input-field col s12">
                            <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                            <label for="email" data-error="wrong" data-success="right">
                                邮箱</label>
                        </div>
                    </div>--%>
                    <div class="row">
                        <div style="float: left;">
                            <h6 class="header">
                                手机号:</h6>
                        </div>
                        <div style="float: left;">
                           <input type="text" id="name" name="numberphone" />
                        </div>
                        <div style="float: left; height:50px;">
                            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                                <ContentTemplate>
                                     <input οnclick="time(this);ButtonClick();"  type="button" value="发送验证码" />
                                    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
                                </ContentTemplate>
                            </asp:UpdatePanel>
                        </div>
                        <div style="clear: both">
                        </div>
                       <div>
                         <h6 class="header">
                                输入验证码:</h6>  <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox></div>
                    </div>
                   <%-- <div class="section scrollspy">
                        <h6 class="header">
                            性别</h6>
                        <p>
                            <input name="sex" type="radio" value="男" id="test1" checked />
                            <label for="test1">
                                男</label>
                        </p>
                        <p>
                            <input name="sex" type="radio" value="女" id="test2" />
                            <label for="test2">
                                女</label>
                        </p>
                    </div>--%>
                  <%--  <div class="row">
                        <div class="input-field col s12">
                            <textarea id="textarea1" name="OrderNote" class="materialize-textarea" length="120"></textarea>
                            <label for="textarea1">
                                个人简述</label>
                        </div>
                    </div>--%>
                    <!-- Checkboxes -->
                    <div id="checkbox" class="section scrollspy">
                        <h6 class="header">
                            我感兴趣的</h6>
                        <br />
                        <p>
                            (可以多选)
                        </p>
                        <br />
                        <div style="float: left;">
                            <p>
                                <input type="checkbox" id="test9" name="g1" checked value="手机APP设计" />
                                <label for="test9">
                                    手机APP设计</label>
                            </p>
                        </div>
                        <div style="float: left; margin-left: 50px;">
                            <p>
                                <input type="checkbox" id="test6" name="g2" value="影视媒体" />
                                <label for="test6">
                                    影视媒体</label>
                            </p>
                        </div>
                        <div style="float: left; margin-left: 50px;">
                            <p>
                                <input type="checkbox" id="test7" name="g3" value="平面设计" />
                                <label for="test7">
                                    平面设计</label>
                            </p>
                        </div>
                        <div style="float: left; margin-left: 50px;">
                            <p>
                                <input type="checkbox" id="test8" name="g4" value="创意设计" />
                                <label for="test8">
                                    创意设计</label>
                            </p>
                        </div>
                        <div>
                       
                        </div>
                        <div style="clear: both">
                        </div>
                        <div style="margin-top: 50px;">
                            <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">立即注册</asp:LinkButton>
                        </div>
                    </div>
                     <script type="text/javascript">
    function ButtonClick() {
            //参数,如果要向后台传入多个参数,可以用分割的方式进行传入
            //例如:name,age,sex,..... 然后后台进行split分割
            var 我是变量 = $( "#name" ).val();
            //此处为
            <%=Page.ClientScript.GetCallbackEventReference(this, "我是变量", "点按钮调用我", null)%>
           
        }
        function 点按钮调用我( ret ) {
            alert( ret )
        }
        var wait = 120;
       
        function time(o) {
            if (wait == 0) {
                o.removeAttribute("disabled");
                o.value = "免费获取验证码";
                wait = 5;
            } else {
              
                o.setAttribute("disabled", true);
                o.value = "重新发送(" + wait + ")";
                wait--;
                setTimeout(function () {
                    time(o)
                },
1000)
            }
        }
        
       
    </script>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>


后台代码: 
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System;
using System.Security.Cryptography;
using System.Text.RegularExpressions;
using System.Web.Script.Serialization;

public partial class register : System.Web.UI.UserControl, ICallbackEventHandler
{
    protected void Page_Load(object sender, EventArgs e)
    {
       
    }

    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        //注册用户:
         if (TextBox5.Text == "")
        {
            Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Materialize.toast('昵称不能为空!', 3000, 'rounded');</script>");
          
        }
        
        else if (TextBox7.Text == "")
        {
            Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Materialize.toast('验证码不能为空!', 3000, 'rounded');</script>");
           
        }
        else if (TextBox2.Text == "")
        {
            Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Materialize.toast('密码不能为空!', 3000, 'rounded');</script>");
           
        }
        else if (TextBox4.Text == "")
        {
            Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Materialize.toast('密码不能为空!', 3000, 'rounded');</script>");
          
        }
        //else if (TextBox3.Text == "")
        //{
        //    Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Materialize.toast('邮箱不能为空!', 3000, 'rounded');</script>");
          
        //}

        else
        {

 

            Datacon dcc = new Datacon();
            SqlConnection connn = dcc.SQL_con();
            if (connn.State == System.Data.ConnectionState.Closed)
            {
                connn.Open();
            }
            string strs = "select * from [User_login] where use_num='" + TextBox5.Text + "'  ";
            SqlCommand commm = new SqlCommand(strs, connn);
            SqlDataReader dr = commm.ExecuteReader();
            if (dr.Read())
            {
               
                Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Materialize.toast('用户已存在!', 3000, 'rounded');</script>");
          
            }

            else
            {

 

                if (TextBox7.Text.Equals(Session["codes"]))
                {

 

                    if (!(TextBox2.Text.Equals(TextBox4.Text)))
                    {
                        Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Materialize.toast('两次密码不一致!', 3000, 'rounded');</script>");
          
                      
                    }
                    else
                    {

                        String name_num = Request.Form["numberphone"];//电话
                        
                        //string md5_name_num; //加密后数据
                        //md5_name_num = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(name_num, "MD5");
                        String pass1 = TextBox2.Text;
                        string md5_pass1; //加密后数据
                        md5_pass1 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(pass1, "MD5");
                        //String email = TextBox3.Text;
                        String pass2 = TextBox4.Text;
                        String name = TextBox5.Text;
                        //string jianjie = Request.Form["OrderNote"];//个人简介
                        //String sex = Request.Form["sex"];//性别
                        String g1 = Request.Form["g1"];//喜好
                        String g2 = Request.Form["g2"];//喜好
                        String g3 = Request.Form["g3"];//喜好
                        String g4 = Request.Form["g4"];//喜好
                        String like = g1 + "," + g2 + "," + g3 + "," + g4 + "";
                        Datacon dc = new Datacon();
                        SqlConnection conn = dc.SQL_con();
                        if (conn.State == System.Data.ConnectionState.Closed)
                        {
                            conn.Open();
                        }
                        string str = "insert into [User_login] (use_num,use_name,password,like1) values('" + name_num + "','" + name + "','" + md5_pass1 + "','" + like + "')";
                        SqlCommand comm = new SqlCommand(str, conn);
                        if (Convert.ToInt32(comm.ExecuteNonQuery()) > 0)
                        {
                            // 在此处放置用户代码以初始化页面 
                            //string namee = name_num;
                            string path = Server.MapPath("") + "\\file" + "\\" + name_num;
                            if (Directory.Exists(path))
                            {
                                Response.Write("<script>alert('用户已存在了!马上登陆');history.go(-1);</script>");
                            }
                            else
                            {
                                DirectoryInfo folder = Directory.CreateDirectory(path);
                                string time = Convert.ToString(Directory.GetCreationTime(path));
                                string foldername = name.Substring(name.LastIndexOf("\\") + 1);
                               // Response.Write("添加成功!");
                                //Response.Write("添加时间:" + time);
                                //Response.Write("文件夹名:" + foldername);
                            }
                            WebMessageBox.Show("注册成功,欢迎您加入我们!", "index.aspx");
                        }
                        else
                        {
                            WebMessageBox.Show("注册失败请,检查输入信息!!", "register.aspx");
                            Response.Redirect("register.aspx");
                        }
                        if (conn.State == System.Data.ConnectionState.Open)
                        {
                            conn.Close();
                        }

                    }
                }
                else
                {
                  
                    Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Materialize.toast('验证码不一致!', 3000, 'rounded');</script>");
          
                }
            }
        }
    }
    public static string GetMD5(string myString)
    {
        MD5 md5 = new MD5CryptoServiceProvider();
        byte[] fromData = System.Text.Encoding.Unicode.GetBytes(myString);
        byte[] targetData = md5.ComputeHash(fromData);
        string byte2String = null;

        for (int i = 0; i < targetData.Length; i++)
        {
            byte2String += targetData[i].ToString("x");
        }

        return byte2String;
    }
    public void but_Click(object sender, object o)
    {
        Response.Write("abc");
        Session["mobile"]="";
    }

    //protected void Button1_Click1(object sender, System.EventArgs e)
    //{
    //    if (TextBox6.Text.Equals(""))
    //    {
    //        Label1.Text = "手机号不能为空!";
    //    }
    //    else
    //    {
    //         String phnoeNumber=TextBox6.Text;//获取输入的手机号
    //         if (IsMobilePhone(phnoeNumber))
    //         {

 

    //             Random rad = new Random();//实例化随机数产生器rad;
    //             int value = rad.Next(1000, 10000);//用rad生成大于等于1000,小于等于9999的随机数;
    //             Label1.Text = value.ToString(); //用label控件label1显示产生的四位随机数;
    //             GetMessage gm = new GetMessage();
    //             String s=gm.mian(phnoeNumber, value.ToString());//发送  返回json
    //             String key = getJson(s);
    //             if (key.Equals("00000"))
    //             {
    //                 Label1.Text = "有效时间2分钟";
    //                 Button1.Enabled = false;
    //                 Button1.Text = "验证码已发送";
    //                 Session["codes"] = value.ToString();
    //             }
    //             else
    //             {
    //                 Label1.Text = "手机号有误,请核实 !";
    //             }
    //         }
    //         else
    //         {
    //             Label1.Text = "手机号有误   !";
    //         }
    //    }
    //}
    public static bool IsMobilePhone(string input)
    {
        Regex regex = new System.Text.RegularExpressions.Regex("^1\\d{10}$");
        return regex.IsMatch(input);
    }
    public String getJson(String jsons)
    {
        var serializer = new JavaScriptSerializer();
        var ret = serializer.Deserialize<JsonObject>(jsons);
        string key = ret.RespCode;

        return key;
    }
    public class JsonObject
    {
        public string RespCode { get; set; }
       
    }

 

    /*---------------------------实现下面两个函数------------------------------*/
    //定义一个存储变量
    string result = string.Empty;
    public string GetCallbackResult()
    {
        return result;
    }

    public void RaiseCallbackEvent(string eventArgument)
    {
        //将计算的结果赋值给result变量
        //这里你也可以直接调用bll,或者直接在这里进行读取数据库....
        //发送验证码的方法
        String phnoeNumber = "";//获取输入的手机号
        phnoeNumber = eventArgument;
        if (IsMobilePhone(phnoeNumber))
        {
            Random rad = new Random();//实例化随机数产生器rad;
            int value = rad.Next(1000, 10000);//用rad生成大于等于1000,小于等于9999的随机数;

            GetMessage gm = new GetMessage();
            String s = gm.mian(phnoeNumber, value.ToString());//发送  返回json
            String key = getJson(s);
            if (key.Equals("00000"))
            {

 

                Session["codes"] = value.ToString();

 

            }
            else
            {

            }
        }
        else
        {

        }
        result = "验证码已发送" + eventArgument;
    }
    /*-----------------------------------------------------------------------*/
}

转载于:https://my.oschina.net/liusonghuang/blog/791426

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值