为什么这个验证码不能产生图片

artcodeman 2008-12-03 11:10:46
Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ComplexValide._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>复杂验证码</title>
<script type="text/javascript">

function ShowValidImage() {
var numkey = Math.random();
document.getElementById("imgRandom").src = "/ValidCode.aspx?NumKey="+numkey;
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<img id="imgRandom" alt="看不清?点击更换" onclick="ShowValidImage()" src="/ValidCode.aspx?" title="看不清?点击更换" />
</div>
</form>
</body>
</html>


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace ComplexValide
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
}
}

...全文
150 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
CODE163 2008-12-03
  • 打赏
  • 举报
回复
没看见生成验证吗的内容啊
给你个小示例http://bbs.hackdv.cn/showtopic-9.aspx
lxl_sports 2008-12-03
  • 打赏
  • 举报
回复
document.getElementById("imgRandom").src = "~/ValidCode.aspx?NumKey="+numkey;
jfd198512 2008-12-03
  • 打赏
  • 举报
回复
学习~
跟踪!
IAMBEN 2008-12-03
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ComplexValide._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>复杂验证码</title>
<script type="text/javascript">

function ShowValidImage() {
var numkey = Math.random();
document.getElementById("imgRandom").src = "/ValidCode.aspx?NumKey="+numkey;
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<img id="imgRandom" alt="看不清?点击更换" onload="ShowValidImage()" onclick="ShowValidImage()" src="/ValidCode.aspx?" title="看不清?点击更换" />
</div>
</form>
</body>
</html>
dd__dd 2008-12-03
  • 打赏
  • 举报
回复
document.getElementById("imgRandom").src = "../ValidCode.aspx?NumKey="+numkey;
src="../ValidCode.aspx?"
看看
artcodeman 2008-12-03
  • 打赏
  • 举报
回复
qhdrenzhijie 2008-12-03
  • 打赏
  • 举报
回复
帮顶
tianyu_lianxin 2008-12-03
  • 打赏
  • 举报
回复
string bgFilePath = Server.MapPath(".\\images\\bg" + new Random().Next(5) + ".jpg");
中的相对路径是不是错了,.\\images\\bg多了个\吧。
artcodeman 2008-12-03
  • 打赏
  • 举报
回复
up
Teng_s2000 2008-12-03
  • 打赏
  • 举报
回复
<script type="text/javascript">


<script type="text/javascript" defer>
jiang_jiajia10 2008-12-03
  • 打赏
  • 举报
回复
src="/ValidCode.aspx?"问号去掉看看
artcodeman 2008-12-03
  • 打赏
  • 举报
回复
string bgFilePath = Server.MapPath(".\\images\\bg" + new Random().Next(5) + ".jpg");//随机找个图象

是不是要建一个images文件夹 ,然后里面放5个背景图片,bg1.jpg,bg2.jpg,bg3.jpg,bg4.jpg,bg5.jpg
yuchang1980 2008-12-03
  • 打赏
  • 举报
回复
ValidCode.aspx

代码呢
artcodeman 2008-12-03
  • 打赏
  • 举报
回复
ValidCode.aspx

ValidCode.aspx

ValidCode.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Drawing;

namespace ComplexValide
{
public partial class ValidCode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Random rd = new Random(); //创建随机数对象

//以下4行,产生由6个字母和数字组成的一个字符串
string str = "ABCDEFGHIJKLMNOPQRSTURWXYZ0123456789我的复杂验证源码";
string my51aspx = "";
for (int i = 0; i < 6; i++)
{
my51aspx = my51aspx + str.Substring(rd.Next(42), 1);
}
//验证码值存放到Session中用来比较
Session["Valid"] = my51aspx;

//以下三句,通过随机找一个现有图象产生一个画布Bitmap
string bgFilePath = Server.MapPath(".\\images\\bg" + new Random().Next(5) + ".jpg");//随机找个图象
System.Drawing.Image imgObj = System.Drawing.Image.FromFile(bgFilePath);
Bitmap newBitmap = new Bitmap(imgObj, 290, 80);//建立位图对象

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)], 30, FontStyle.Bold);//字体随机,字号大小30,加粗
//每次循环绘制一个字符,设置字体格式,画笔颜色,字符相对画布的X坐标,字符相对画布的Y坐标
g.DrawString(my51aspx.Substring(a, 1), textFont, brush, 40 + a * 36, 20);
}

//保存画的图片到输出流中
newBitmap.Save(Response.OutputStream, ImageFormat.Gif);

}

}
}


一弗楚 2008-12-03
  • 打赏
  • 举报
回复
img 给个高度和宽度看看
luyanvv 2008-12-03
  • 打赏
  • 举报
回复
路过~

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧