验证码的判断问题··
我现在 做了一个验证码·· 我现在 想做个button 来 验证
<img src="Defimage.aspx" id="yzm" onclick="this.src='Defimage.aspx?abc='+Math.random()" alt="图片看不清?点击重新得到验证码" style="cursor:hand; " /> 里面随即显示的字母和数字
<input id="Text1" type="text" runat="server" />
文本框里面输入的字母等于 <img src="Defimage.aspx" id="yzm" onclick="this.src='Defimage.aspx?abc='+Math.random()" alt="图片看不清?点击重新得到验证码" style="cursor:hand; " /> 的话··就可以label 会显示成功·· 如果不相等的话 label 就显示不成功
[解决办法]
好像是把字母和数字写到图片上的!!
[解决办法]
用点击Button后调用Ajax
[解决办法]
验证码 产生一个session[""];;
可以通过session[""]==用户输入的值..就通过验证??
[解决办法]
UP,不清楚你要问什么,
[解决办法]
Random rd = new Random(); //创建随机数对象
//以下4行,产生由6个字母和数字组成的一个字符串
string str = "ABCDEFGHIJKLMNOPQRSTURWXYZ0123456789";
string my51aspx = "";
for (int i = 0; i < 4; i++)
{
my51aspx = my51aspx + str.Substring(rd.Next(35), 1);
}
//验证码值存放到Session中用来比较
Session["ValidateReg"] = my51aspx;
//以下三句,通过随机找一个现有图象产生一个画布Bitmap
string bgFilePath = Server.MapPath("images/0" + new Random().Next(5) + ".jpg");//随机找个图象
System.Drawing.Image imgObj = System.Drawing.Image.FromFile(bgFilePath);
Bitmap newBitmap = new Bitmap(imgObj, 80, 18);//建立位图对象
Graphics g = Graphics.FromImage(newBitmap);//根据上面创建的位图对象创建绘图面
SolidBrush brush = new SolidBrush(Color.Black);//设置画笔颜色
//定义一个含10种字体的数组
String[] fontFamily ={ "Arial", "Verdana", "Comic Sans MS", "Impact", "Haettenschweiler", "Lucida Sans Unicode", "Garamond", "Courier New", "Book Antiqua", "Arial Narrow" };
//通过循环,绘制每个字符,
for (int a = 0; a < my51aspx.Length; a++)
{
Font textFont = new Font(fontFamily[rd.Next(9)], 10, FontStyle.Bold);//字体随机,字号大小30,加粗
//每次循环绘制一个字符,设置字体格式,画笔颜色,字符相对画布的X坐标,字符相对画布的Y坐标
g.DrawString(my51aspx.Substring(a, 1), textFont, brush, a * 19, 0);
}
//保存画的图片到输出流中
newBitmap.Save(Response.OutputStream, ImageFormat.Gif);
[解决办法]
Random rd = new Random(); //创建随机数对象
//以下4行,产生由6个字母和数字组成的一个字符串
string str = "ABCDEFGHIJKLMNOPQRSTURWXYZ0123456789";
string my51aspx = "";
for (int i = 0; i < 4; i++)
{
my51aspx = my51aspx + str.Substring(rd.Next(35), 1);
}
//验证码值存放到Session中用来比较
Session["ValidateReg"] = my51aspx;
//以下三句,通过随机找一个现有图象产生一个画布Bitmap
string bgFilePath = Server.MapPath("images/0" + new Random().Next(5) + ".jpg");//随机找个图象
System.Drawing.Image imgObj = System.Drawing.Image.FromFile(bgFilePath);
Bitmap newBitmap = new Bitmap(imgObj, 80, 18);//建立位图对象
Graphics g = Graphics.FromImage(newBitmap);//根据上面创建的位图对象创建绘图面
SolidBrush brush = new SolidBrush(Color.Black);//设置画笔颜色
//定义一个含10种字体的数组
String[] fontFamily ={ "Arial", "Verdana", "Comic Sans MS", "Impact", "Haettenschweiler", "Lucida Sans Unicode", "Garamond", "Courier New", "Book Antiqua", "Arial Narrow" };
//通过循环,绘制每个字符,
for (int a = 0; a < my51aspx.Length; a++)
{
Font textFont = new Font(fontFamily[rd.Next(9)], 10, FontStyle.Bold);//字体随机,字号大小30,加粗
//每次循环绘制一个字符,设置字体格式,画笔颜色,字符相对画布的X坐标,字符相对画布的Y坐标
g.DrawString(my51aspx.Substring(a, 1), textFont, brush, a * 19, 0);
}
//保存画的图片到输出流中
newBitmap.Save(Response.OutputStream, ImageFormat.Gif);
[解决办法]
你可以用AJAX到其他地方去验证,然后返回一个bool值,然后再刷新Image页面,从新获取验证码
[解决办法]
把你产生的验证码用Session["ValidationCode"]保留
Page_Load中加:
button.Attributes.Add("onclick", "javascript:checkValidation("+Session["ValidationCode"].ToString()+")");
JS:
function checkValidation(ValidationCode)
{
if(document.getElementById("Text1").value==ValidationCode)
alert("成功!")
}
[解决办法]
如需要阅读该回复,请登录或注册CSDN!