研究了兩天 做了個手機發送驗證碼 用戶在注冊頁面輸入手機號 點擊獲取驗證碼 我用xml來保存注冊手機跟驗證碼信息
並確保唯一 沒啥整理 小的才疏學淺 牛人勿噴
Html:
<li>
<label class="k" for="">
手機號碼:</label>
<span class="v">
<input class="psp-text" style="width: 90px; ime-mode: disabled;" type="text" id="txtMobileCode"
name="txtMobileCode" maxlength="11" size="11" onpaste="return false" />
<input type="button" value="獲取驗證碼" onclick="SetCode(true);" id="btnCode" />
</span><em id="tipTel"></em></li>
jquery:
function SetCode(n) {
if ($('#txtMobileCode').length = 11) {
if (n)
$.ajax({
type: "get",
dataType: "json",
url: "ajax.aspx?oper=telpcode&clienttime=" + (new Date().getTime()),
data: "txtMobileCode=" + $("#txtMobileCode").val(),
success: function (d) {
if (d.result == "1") {
alert("驗證碼發送成功");
GetNumber();
return true;
}
else {
alert("驗證碼發送失敗");
return false;
}
}
});
else { }
}
else {
}
}
var count = 5;
function GetNumber() {
$("#btnCode").attr("disabled", "disabled");
$("#btnCode").val(count + "秒之后點擊獲取")
count--;
if (count > 0) {
setTimeout(GetNumber, 1000);
}
else {
$("#btnCode").val("點擊獲取驗證碼");
$("#btnCode").attr("disabled", "");
count = 5;
}
}
AjAX.aspx CS:
private void ajaxTelpCode() //產生驗證碼
{
sms.Service sms = new sms.Service();//短信服務接口
if (q("txtMobileCode") != "")
{
string telp = q("txtMobileCode");//頁面電話號碼
Random random = new Random();
string telcode = random.Next(100000, 999999).ToString();//6位驗證碼
string s = sms.mt("xmysy", "fff", telp, "您的驗證碼為:" + telcode).ToString();//接口發送
if (s == "0")
{
xmlDoc.Load(HttpContext.Current.Server.MapPath("~/TelCode.xml"));//定義xml文件 來保存驗證碼和手機好
XmlNode root = xmlDoc.SelectSingleNode("Tcode");
XmlNodeList nodelist = xmlDoc.SelectSingleNode("Tcode").ChildNodes;
for (int i = 0; i < nodelist.Count; i++)//讀取原來驗證XMl文件
{
XmlElement xe = (XmlElement)nodelist.Item(i);
if (xe.GetAttribute("tel") == telp)//判斷手機是否已存在 存在將其刪除 保證驗證碼唯一並是最新的、、【重新發送】
{
root.RemoveChild(xe);
if (i < nodelist.Count)
i = i - 1;
}
}
//新增一筆記錄 保存手機號與對應的驗證碼
XmlElement xe1 = xmlDoc.CreateElement("Node");
xe1.SetAttribute("tel", telp);
XmlElement xesub1 = xmlDoc.CreateElement("Code");
xesub1.InnerText = telcode;
xe1.AppendChild(xesub1);
XmlElement xesub2 = xmlDoc.CreateElement("Tel");
xesub2.InnerText = telp;
xe1.AppendChild(xesub2);
root.AppendChild(xe1);
xmlDoc.Save(HttpContext.Current.Server.MapPath("~/TelCode.xml"));
this._response = JsonResult(1, "驗證碼發送成功");//返回內容
}
else
{
this._response = JsonResult(0, "驗證碼發送失誤");
}
}
else
this._response = JsonResult(0, "為空");
}
private void ajaxRegister()//注冊按鈕
{
string _code = f("txtCode");
string _tel = f("txtMobileCode");
bool istrue = true;
DataSet ds = new DataSet();
ds.ReadXml(HttpContext.Current.Server.MapPath("~/TelCode.xml"));
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["Code"].ToString() == _code && dt.Rows[i]["Tel"].ToString() == _tel)
{
istrue = false;
break;
}
else
{
}
}
}
if (istrue)
{
Response.Write("JumboTCMS.Alert('驗證碼錯誤', '0');");
Response.End();
}
........
}
XML :
<Tcode>
<Node tel="15980908000">
<Code>696009</Code>
<Tel>15980908000</Tel>
</Node>
<Node tel="15980908001">
<Code>689998</Code>
<Tel>15980908001</Tel>
</Node>
</Tcode>