注册页面,效果如下
RequiredFieldValidator控件:对于输入的内容进行验证,本文对输入框进行验证
其中比较常用的属性:
ErrorMessage="* 必填项" :验证失败的提示信息
ForeColor:错误信息的字体颜色。
ControlToValidate:被验证的控件的 id
runat=“server” 该控件是一个服务器控件
<body style="background:#d7eeee;">
<form id="form1" runat="server" >
<div class="container" >
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6 login_text2">X动漫模型网站注册</div>
<div class="col-md-3"></div>
</div>
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6">
<div class="form-group">
<div class="row">
<div class="col-md-3 login_text">用户名:</div>
<div class="col-md-6" >
<asp:TextBox ID="txtUser" class="form-control" runat="server"></asp:TextBox>
</div>
<div class="col-md-3">
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="* 必填项" ControlToValidate="txtUser"></asp:RequiredFieldValidator>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-3 login_text">设置密码:</div>
<div class="col-md-6 ">
<asp:TextBox ID="txtPwd" runat="server" class="form-control" TextMode="Password"></asp:TextBox>
</div>
<div class="col-md-3">
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="* 必填项" ControlToValidate="txtPwd"></asp:RequiredFieldValidator>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-3 login_text">确认密码:</div>
<div class="col-md-6 ">
<asp:TextBox ID="txtPwd2" runat="server" class="form-control" TextMode="Password"></asp:TextBox>
</div>
<div class="col-md-3">
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="* 必填项" ControlToValidate="txtPwd"></asp:RequiredFieldValidator>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-3 login_text">验证码:</div>
<div class="col-md-6">
<asp:TextBox ID="txtCheckCode" class="form-control" Width="150" runat="server"></asp:TextBox>
</div>
<div class="col-md-3" style="margin-top:5px">
<asp:Image ID="Image1" runat="server" ImageUrl="~/CheckCode.aspx" /></div>
</div>
</div>
<div class="form-group header_signup">
<asp:Button ID="btnlogon2" CssClass="header_login2" runat="server" Text="注册" OnClick="btnlogon2_Click" />
<asp:Button ID="ImageButton2" CssClass="header_login2" runat="server" Text="重置" OnClick="btnlogon3_Click"/>
<asp:HyperLink ID="HyperLink1" runat="server" class="btn-link" NavigateUrl="~/Default.aspx">[返回首页]</asp:HyperLink>
</div>
</div>
<div class="col-md-3"></div>
</div>
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6"></div>
<div class="col-md-3"></div>
</div>
</div>
</form>
</body>
最下面是btnlogon3_Click是为了实现置空功能,当用户点击置空之后实现清空输入框的效果
先判断两次输入的密码是否正确、然后判断验证码是否正确
checkcode = Request.Cookies[“CheckCode”].Value; 获取验证码的值
验证码的实现在下面
WebMessageBox.Show(“恭喜你,注册成功,请登录页面!”, “Logon.aspx”); 输出提示框并跳转页面,你们可以通过 Response.Write实现
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Login : System.Web.UI.Page
{
//声明用户类和随机变量
Operation operation = new Operation();
Random random = new Random();
String checkcode = null;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnlogon2_Click(object sender, EventArgs e)
{
//利用CheckCode实现图片显示
checkcode = Request.Cookies["CheckCode"].Value;
//判断再次输入的密码是否一致
if (txtPwd.Text == txtPwd2.Text)
{
//判断验证码是否正确
if (checkcode != txtCheckCode.Text.Trim())
{
WebMessageBox.Show("输入验证码不正确!", "Login.aspx");
}
else if (true)
{
//往数据库添加数据
operation.Login(txtUser.Text, txtPwd2.Text);
//判断数据成功添加到数据库
if (operation.Login2(txtUser.Text, txtPwd2.Text).Tables[0].Rows.Count > 0) {
WebMessageBox.Show("恭喜你,注册成功,请登录页面!", "Logon.aspx");
}
else
{
WebMessageBox.Show("注册失败,请重新注册!", "Login.aspx");
}
}
}
else {
WebMessageBox.Show("输入的确认密码与密码不相等,请重新输入!", "Login.aspx");
}
}
protected void btnlogon3_Click(object sender, EventArgs e)
{
txtUser.Text = "";
txtPwd.Text = "";
txtPwd2.Text = "";
txtCheckCode.Text = "";
}
}
验证码的实现
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
public partial class CheckCode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CreateCheckCodeImage(GenerateCheckCode());
}
private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty;
System.Random random = new Random();
for (int i = 0; i < 4; i++)
{
number = random.Next();
if (number % 2 == 0)
code = (char)('0' + (char)(number % 10));
else
code = (char)('A' + (char)(number % 26));
checkCode += code.ToString();
}
Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
return checkCode;
}
private void CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
return;
System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(image);
try
{
//生成随机生成器
Random random = new Random();
//清空图片背景色
g.Clear(Color.White);
//画图片的背景噪音线
for (int i = 0; i < 2; i++)
{
int x1 = random.Next(image.Width);
int x2 = random.Next(image.Width);
int y1 = random.Next(image.Height);
int y2 = random.Next(image.Height);
g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);
}
Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点
for (int i = 0; i < 100; i++)
{
int x = random.Next(image.Width);
int y = random.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
//画图片的边框线
g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}
}