一个奇怪的问题,明明是一样的,为什么校验时通不过,就提示两个数输入的不一样?

parsely 2003-09-13 10:23:42
我的前台aspx 中有个Label1,我在 CS 文件中的Page_Load定义了一个随机数,并且我设了前台的Label1.Text=这个生成的随机数,如下:

private void Page_Load(object sender, System.EventArgs e)
{
string s=DateTime.Now.Second.ToString();
string filename=s; string front_filename;


Random rrr=new Random();
front_filename=filename+rrr.Next(1000); //生成了一个随机数
Label1.Text=front_filename;//ASPX中的Label1显示这个随机数
checknum=Label1.Text;//checknum=Label1的值

}

以下的提交按钮的事件方法:

private void Submit1_ServerClick(object sender, System.EventArgs e)
{

if(checknum!=cn.Value)
{
Response.Write("<script>alert('对不起,你所填的认证码不正确!'</script>");
return;
}

当我按下按钮的时候,比较我前台的input(id=cn) 中输入的值是否等于 这个随机数,即if(checknum!=cn.Value),可是明明我在input(id=cn)中输入的是Label1.Text中显示的随机数,可是为什么系统就提示说script>alert('对不起,你所填的认证码不正确!'</script>"),我明明是一点不差的输入的Label1.Text的值啊?为什么为这样,各位大哥请帮忙!!


}
...全文
81 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
combread 2003-09-13
  • 打赏
  • 举报
回复
对了, 我认为jjcccc() 说到到点子上了。你没有放到!IsPostPack
中,在点击验证按钮的时候,又执行了Page_Load,这个时候,你的验证码变成了另外一个随机数,和你在点击按钮以前看到的那个不一样了。
cnlamar 2003-09-13
  • 打赏
  • 举报
回复
哦,对了,记得加IsPostBack哦
cnlamar 2003-09-13
  • 打赏
  • 举报
回复
既然要做随机数,最好做成图片的!
checknum怎么能等于他呢?

正确的方法
先做一个全局变量a,然后在page_load中生成随机数并赋值给a
然后将a显示出去
然后在Submit1_ServerClick中比较a和和输入进来的数字!
jjcccc 2003-09-13
  • 打赏
  • 举报
回复
当你按下按钮的时候,页面被提交,Page_load代码重新被执行,又生成了一个新的随机数,....,新的页面后返回给浏览器.所以'对不起,你所填的认证码不正确!':
改成这样试试:
private void Page_Load(object sender, System.EventArgs e)
{
string s=DateTime.Now.Second.ToString();
string filename=s; string front_filename;

if (!IsPostBack)
{
Random rrr=new Random();
front_filename=filename+rrr.Next(1000); //生成了一个随机数
Label1.Text=front_filename;//ASPX中的Label1显示这个随机数
checknum=Label1.Text;//checknum=Label1的值
}

}
cnhgj 2003-09-13
  • 打赏
  • 举报
回复
晕。。搞成VB了!

if (!IsPostBack)
{
Label1.Text=front_filename;//ASPX中的Label1显示这个随机数
}
cnhgj 2003-09-13
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
{
string s=DateTime.Now.Second.ToString();
string filename=s; string front_filename;


Random rrr=new Random();
front_filename=filename+rrr.Next(1000); //生成了一个随机数


if not ispostback then
Label1.Text=front_filename;//ASPX中的Label1显示这个随机数
end if


checknum=Label1.Text;//checknum=Label1的值

}

62,039

社区成员

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

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

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

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