无刷新验证码

当前位置 : 首页 > 网页制作 > CSS > 无刷新验证码

无刷新验证码

来源: 作者: 时间:2016-02-16 10:05
放验证码的页面内添加如下js脚本,这个是刷新验证码的方法:[html]script language=javascript type=text/javascriptfunction fresh(){var randomnum=Math.random();var getimagecode=document.getEl...

放验证码的页面内添加如下js脚本,这个是刷新验证码的方法:

[html]
<script language="javascript" type="text/javascript"> 
function fresh() 

var randomnum=Math.random(); 
var getimagecode=document.getElementById( "codeimage"); 
getimagecode.src= "ValidateImage.x? "+randomnum; 

</script> 

<script language="javascript" type="text/javascript">
function fresh()
{
var randomnum=Math.random();
var getimagecode=document.getElementById( "codeimage");
getimagecode.src= "ValidateImage.aspx? "+randomnum;
}
</script>


页面内要放验证码的地方(层内,单元格内等)放置如下代码,这个是验证码的图图,输入验证码的文本框和调刷新方法的链接。

[]
<div><img id="codeimage" src="ValidateImage.aspx?,Math.random()" /> 
<asp:TextBox ID="txtValidateCode" runat="server" Width="55px" MaxLength="4"></asp:TextBox> 
<a href="javascript:fresh()" style="font-size: 12px; color: Green">看不清</a></div> 

<div><img id="codeimage" src="ValidateImage.aspx?,Math.random()" />
<asp:TextBox ID="txtValidateCode" runat="server" Width="55px" MaxLength="4"></asp:TextBox>
<a href="javascript:fresh()" style="font-size: 12px; color: Green">看不清</a></div>


Validateimage.aspx页面是生成图片

[html] view plaincopyprint?private void Page_Load(object sender, System.EventArgs e) 
   { 
       this.CreateCheckCodeImage(RndNum()); 
   } 
   private string RndNum() 
   { 
       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("yzmcode", 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 < 20; 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.Aqua), 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.BlueViolet, Color.BlueViolet, 1.2f, true); 
           g.DrawString(checkCode, font, brush, 2, 2); 
           //画图片的前景噪音点  
           for (int i = 0; i < 50; 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(); 
       } 
   }  

Tag:
网友评论

<