写得太乱了,分层啊。在BLL层中
if(所发条数<3)
{
Add();
}
if(所发条数<3)
{
Add();
}
解决方案 »
- 如何实现以下aspnet网站访问功能
- 同志们,谁有好办法解决这个问题,请进来!!
- 数据库中时间 一开始为null 然后update set sj='8:00:00'怎么全变成1900-1-1 8:00:00
- 多次调用一个类的时候出现重复,请帮忙看看,多谢!
- 为什么弹不出提示框??
- 我刚开始自学ASP.NET遇到的问题!!!
- ASP.NET WebForm 与 ASP.NET MVC
- Ajax能否调用后台非静态方法
- 思归大哥帮帮我啊,我请你听歌~~~
- 如何使dropdown控件中的datasource指定为datatable中的具体某一列?
- 问一个简单的问题
- 咨询大家一个关于单元测试的问题,B/S,懂的请进。谢谢。
这个是做了判断的: if (today_add(cookie_name))
{
Label1.Text = cookie_name;
} else
{
Response.Redirect("msg.aspx?action=today_2", true);
}
/// <summary>
/// 检测用户今日发了几条信息
/// </summary>
/// <param name="username">用户名</param>
/// <returns>返回true或者false</returns>
private bool today_add(String username)
{
conn reader = new conn();
OleDbDataReader request = reader.ReadUser(username);
request.Read();
Int32 num = Convert.ToInt32(request["tody_num"].ToString());
DateTime day =Convert.ToDateTime(request["tody_day"].ToString());
reader.CloseDB();
DateTime nowtime = DateTime.Now;
if (nowtime.ToShortDateString().ToString() == day.ToShortDateString().ToString() && num >= 3)
{
return false;//今日已经发了3条信息了
}
else
{
return true;
}
}还有个问题就是默认新发布的都是未审核的,但是他发的直接就审核通过了,所以怀疑他是直接通过页面写入数据库的。我想在入库页面做个判断页面来源,不知道怎么做
if (today_add(cookie_name))
{
Label1.Text = cookie_name;
} else
{
Response.Redirect("msg.aspx?action=today_2", true);
}
真正发新闻的是这个页msg.aspx
但是你验证的是add_new这个页,如果,用户不通过这个add_new 页进入msg.aspx页,
而是通过浏览器直接写入msg.aspx页地址进入msg.aspx页,你的验证,还有什么用昵?????
这个代码 用存储过程。如果还不行 发信息的时候用验证码最好在插入的时候加入IP限制
这个不是发布信息页面,二是信息提示页面,提示今日已经发布超过3条信息了。
打开发布页面,先检查是否有效登录,不是则跳转登录页面如已登录,则检查当前登录用户今日发布多少信息,如果已经发布3条了,则跳转到提示页,提示已经发布3条信息了。如果检查到今日还么有发布或者还没发够3条信息,则显示信息发布界面,让用户填写相关选项,然后入库,并且入库的时候直接是设置为未审核的。我现在想不明白的是,就算页面有漏洞,可以无限制发布,但是这个发布就直接显示是什么道理呢?请看这个写入的语句:
//写入数据
add.add_new(id,title, content, clas, area, publishers, qq, telephone, intermediary, set_top, duration, nowtime);这个是入库代码:
public void add_new(String id, String title, String content, String clas, String area, String publishers, String qq, String telephone, Int32 intermediary, DateTime set_top, Int32 duration, DateTime date_time)
{
OpenDB();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "insert into data ([id],[title],[content],[class],[area],[publishers],[qq],[telephone],[number],[intermediary],[set_top],[duration],[date_time],[jubao]) values(@id,@title,@content,@class,@area,@publishers,@qq,@telephone,@number,@intermediary,@set_top,@duration,@date_time,@jubao)";
cmd.Parameters.Add("@id", OleDbType.VarChar, 14);
cmd.Parameters.Add("@title",OleDbType.VarChar, 20);
cmd.Parameters.Add("@content",OleDbType.VarChar, 310);
cmd.Parameters.Add("@class",OleDbType.VarChar, 6);
cmd.Parameters.Add("@area",OleDbType.VarChar, 6);
cmd.Parameters.Add("@publishers",OleDbType.VarChar, 12);
cmd.Parameters.Add("@qq",OleDbType.VarChar,12);
cmd.Parameters.Add("@telephone",OleDbType.VarChar,12);
cmd.Parameters.Add("@number",OleDbType.Integer, 1);
cmd.Parameters.Add("@intermediary",OleDbType.Integer, 1);
cmd.Parameters.Add("@set_top",OleDbType.Date);
cmd.Parameters.Add("@duration",OleDbType.Integer, 2);
cmd.Parameters.Add("@date_time",OleDbType.Date);
cmd.Parameters.Add("@jubao", OleDbType.Integer, 2);
cmd.Parameters["@id"].Value = id;
cmd.Parameters["@title"].Value = title;
cmd.Parameters["@content"].Value = content;
cmd.Parameters["@class"].Value = clas;
cmd.Parameters["@area"].Value = area;
cmd.Parameters["@publishers"].Value = publishers;
cmd.Parameters["@qq"].Value = qq;
cmd.Parameters["@telephone"].Value = telephone;
cmd.Parameters["@number"].Value = 0;
cmd.Parameters["@intermediary"].Value = intermediary;
cmd.Parameters["@set_top"].Value = set_top;
cmd.Parameters["@duration"].Value = duration;
cmd.Parameters["@date_time"].Value = date_time;
cmd.Parameters["@jubao"].Value = 5;
cmd.Connection = connstr;
cmd.ExecuteNonQuery();
CloseDB();
}
其中红色的5是代表未审核的,他是如何能修改到这个数值的呢?这个数值不是从页面提交过来的,二是程序内部直接赋值,也就是说只要有数据入库,那么这个字段都是5,代表未审核。
DateTime day =Convert.ToDateTime(request["tody_day"].ToString());
reader.CloseDB();
DateTime nowtime = DateTime.Now;
if (nowtime.ToShortDateString().ToString() == day.ToShortDateString().ToString() && num >= 3)
{
return false;//今日已经发了3条信息了
}
else
{
return true;
}