注册页面:
<img id="Image1" src="Image.aspx" onclick="src='Image.aspx?s='+Math.random()" title="看不清,换一张" style="left: 0px; height:23px; width:57px; position: relative; top: 3px" />Image.aspx页面后台代码如下:
protected void Page_Load(object sender, EventArgs e)
{
this.CreateCheckCodeImage(GenerateCheckCode());
}
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
} private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
private string GenerateCheckCode()
{
int number;
char code;
string checkCode = String.Empty; System.Random random = new Random();
//里这i为随机数的个数
for (int i = 0; i < 4; i++)
{
number = random.Next(); if (number % 2 == 0)
code = (char)('0' + (char)(number % 5));
else
code = (char)('a' + (char)(number % 7)); checkCode += code.ToString();
} Session["CheckCode"] = checkCode.ToLower();
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 < 1000; 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.Silver), 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 < 10; 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();
}
}
我想在客户端 判断用户输入的验证码是否正确 ! 如果在注册页面后台(Page_Load) 给隐藏域赋值获取验证码的值 每次页面
加载的时候隐藏域中的值为空 再次刷新则为上次的验证码的值 我想直接获取另一个页面验证码的值 !(Image.aspx) 和现在验证码作比较 !!!
高手有什么好的方法吗???
解决方案 »
- div高度VS和IE里看到的不一样
- 急求 DropDownList绑定默认值??????????
- 各位大侠,我用aspxgrid1.5做数据录入方式,想在每行添加一个按钮
- 一组单选按钮,男和女,怎么让用户选择男的时候弹出提示窗口,问用户是否选择
- 我想实现这样一个功能,想破了脑袋也没想出来,请高手指点!!
- 如何设置gridview控件中列的宽度????急~~~~~~
- asp.net为什么挂到IIS上不执行Global.asax文件了
- 关于字符串的分离!
- 简单问题,有谁注意过吗?(20分,一句话)
- 一个asp.net连接sql的问题?
- 怎么样给grideview中的某一列求和
- 重新诚心的问,点button,弹出FileUpload选择文件,然后上传的完整思路
我先问下大家 前台脚本可以获取Session吗?如果可以,那这个问题不就解决了!
只在留言的时候在客户端通过ajax验证在返回
js
function getCookie(name)
{
var strCookie=document.cookie;
var arrCookie=strCookie.split("; ");
for(var i=0;i<arrCookie.length;i++)
{
var arr=arrCookie[i].split("=");
if(arr[0]==name)
{
// return true;
return unescape(arr[1])
}
}
return "";
}
alert(getCookie('Login')) ;
如果是当前页面当然可以,如果另外页面,本页面不刷新,当然拿不到新的session值
用cookies试试。应该可以。
2、还 可以 用ajax去后台获取值。
session说用户级的,你这句话啥意思?
<input id="tempCode" type="hidden" />
<input id="txtCode" name="text" onfocus="GetCode()" style="width: 41px" type="text" />
<img id="imgcode" runat="server" alt="点击刷新" onclick="reloadcode()" src="" />
js代码:
//进行验证
$(document).ready(function(){
$.formValidator.initConfig({
formid:"form1",
onerror:function(msg){alert(msg)},
onsuccess:function(){
//对验证码进行检查
var inputCode=document.getElementById("txtCode").value;
if(realCode==inputCode.toLowerCase()){
return true;
}
else{
reloadcode();
GetCode();
alert("验证码不正确!");
return false;
}
}
});
//验证码检查
$("#txtCode").formValidator({onshow:"请输入左边图片的字母",onfocus:"请输入左边图片的字母",oncorrect:""}).inputValidator({min:4,max:4,onerror:"验证码不正确,请确认"});
});
//获取验证码
function reloadcode(){
//清空原来的验证码
document.getElementById("txtCode").value="";
document.getElementById("imgcode").src ='../生成验证码图片路径.aspx'+'?'+new Date;void(0);
}
//获得验证码
function GetCode(){
CallServer("", "");
}
//接收从服务器端回调的数据
function ReceiveServerData(rValue)
{
///对验证码进行校验
document.getElementById("tempCode").value =rValue;
}
不知道是不是你要的那种