📄 stat.aspx.cs
字号:
statid = Request.QueryString["statid"];//取得传递过来的统计ID号
}
NetCMS.Model.StatInfo info = new NetCMS.Model.StatInfo();
info.vyear = _year;
info.vmonth = _month;
info.vday = _day;
info.vhour = _hour;
info.vtime = _time;
info.vweek = _week;
info.vip=_ip;
info.vwhere = _country;
info.vwheref = _city;
info.vcome = _come;
info.vpage = _page;
info.vsoft = _soft;
info.vOS = _Os;
info.vwidth = _width;
info.classid = statid;
info.SiteID = NetCMS.Global.Current.SiteID;
#region 执行数据操作语句,返回更新数据
sta.Add(info);
#endregion
}
#endregion
#region 读写数据库,该数据库为整站的综合统计信息
if (_isonline == "1")
{
string statidz = Request.QueryString["statid"];
DataTable dtsa = sta.sel_stat_content(statidz);
dv1 = dtsa.DefaultView;//先查询表中是否有数据存在,否则就对相应的ID号的综合统计信息进行数据增加
dv1.Table.AcceptChanges();//提交对数据的更改
if (dv1.Count == 0)
{
dv1.Dispose();//释放资源
string vdatee = DateTime.Now.AddHours(0).Date.ToShortDateString();
string starttimee = DateTime.Now.AddHours(0).ToString();
string highttimee = DateTime.Now.AddHours(0).Date.ToShortDateString();
#region 向数据表中插入的初始数据
sta.add_statContent(vdatee, starttimee, highttimee, statidz, NetCMS.Global.Current.SiteID);//数据语句,返回数据表中
#endregion
}
else
{
_today = int.Parse(dv1[0].Row["today"].ToString());
_yesterday = int.Parse(dv1[0].Row["yesterday"].ToString());
_content_data = dv1[0].Row["vdate"].ToString();
_all = int.Parse(dv1[0].Row["vtop"].ToString());
_heigh = int.Parse(dv1[0].Row["vhigh"].ToString());
_heightime = dv1[0].Row["vhightime"].ToString();
string strclassid = dv1[0].Row["classid"].ToString();
dv1.Dispose();//释放资源
#region 更新综合表数据
int intdatecha = (int)(DateTime.Now.AddHours(0).Subtract(DateTime.Parse(_content_data)).TotalDays);
switch (intdatecha)
{
//上条记录是今天的
case 0:
_today += 1;//今天+1
break;
//上条记录是昨天的
case 1:
_yesterday = _today;//今天值->昨天
_today = 1;
_content_data = DateTime.Now.AddHours(0).Date.ToShortDateString();
break;
//上条记录是若干天前的
default:
_yesterday = 0;
_today = 1;
_content_data = DateTime.Now.AddHours(0).Date.ToShortDateString();
break;
}
if (_today > _heigh)
{
_heigh = _today;
_heightime = DateTime.Now.AddHours(0).Date.ToShortDateString();
}
_all += 1;
#endregion
#region 对指定的数据表进行更新
sta.Update(_today, _yesterday, _content_data, _all, _heigh, _heightime, strclassid, NetCMS.Global.Current.SiteID, strclassid);
#endregion
}
}
#region 读出数据(此数据为统计系统统计出来的数据的一个综合统计,如:今日统计,最高统计,本月的等等)
string statidz1 = Request.QueryString["statid"];
DataTable dte = sta.sel_stat_content(statidz1);
dv1 = dte.DefaultView;
int _today1 = int.Parse(dv1[0].Row["today"].ToString());
int _yesterday1 = int.Parse(dv1[0].Row["yesterday"].ToString());
int _all1 = int.Parse(dv1[0].Row["vtop"].ToString());
int inthigh1 = int.Parse(dv1[0].Row["vhigh"].ToString());
string strhightime1 = DateTime.Parse(dv1[0].Row["vhightime"].ToString()).Date.ToShortDateString();
dv1.Dispose();//释放资源
#endregion
#region 读写COOKIE,得到用户浏览量
System.Web.HttpCookie readcookie1 = Request.Cookies[_sysenglish_name];
if (readcookie1 != null && readcookie1.Values["_old"] != null)
{
_user_visit = int.Parse(readcookie1.Values["_old"].ToString()) + 1;
}
else
{
_user_visit = 1;
}
System.Web.HttpCookie cookie1 = new HttpCookie(_sysenglish_name);
cookie1.Expires = DateTime.Now.AddHours(0).AddDays(int.Parse(dv[0].Row["cookies"].ToString()));
cookie1.Values.Add("_old", _user_visit.ToString());//添加指定项
Response.AppendCookie(cookie1);
#endregion
#endregion
/// <summary>
/// 前台调用
/// </summary>
/// code by chenzhaohui
#region 前台调用程序及图像文件路径-从stat.aspx中传递参数style,url等,调用该统计
code = Request.QueryString["code"];
string Str_dirMana = NetCMS.Config.UIConfig.dirDumm;//虚拟目录
if (Str_dirMana != "" && Str_dirMana != null && Str_dirMana != string.Empty)//判断虚拟路径是否为空
{
Str_dirMana = @"/" + Str_dirMana;
}
else
{
Str_dirMana = "";
}
#region 取得当前域名地址
_url = "http://" + ServerVariables["HTTP_HOST"].ToString() + _url + Str_dirMana;
#endregion
/// <summary>
/// 根据传递的参数得出统计的样式(marquee,pic,text)
/// </summary>
/// <param name="code">前台样式</param>
/// code by chenzhaohui
#region 输出
switch (code)
{
case "1": //LOGO滚动样式的统计方式,滚动方式显示统计到的相关信息
_outstr = "<marquee loop='-1' behavior='alternate' scrollDelay='1' scrollAmount='3' style='font-size: 12px; line-height=15px' onMouseOut='this.start();' onMouseOver='this.stop();'>";
_outstr += "<font face='Arial, Verdana, san-serif' color='#407526'>总量: " + _all1 + " 最高访问量: " + inthigh1 + " 最高访问量日期: " + strhightime1 + " 今日访问: " + _today1 + " 昨日访问: " + _yesterday1 + " 您的访问量: " + _user_visit;
if (int.Parse(dv[0].Row["isOnlinestat"].ToString()) == 1) _outstr += " 在线人数: " + _online_person;
_outstr += "</font></marquee>";
break;
case "2": //ICON显示一小图标,鼠标放上去自动显示出系统统计到的相关信息
_outstr = "<a href='http://www.netcms' title='" + dv[0].Row["SystemName"].ToString() + "\\n总量: " + _all1 + "\\n最高访问量: " + inthigh1 + "\\n最高访问量日期: " + strhightime1 + "\\n今日访问: " + _today1 + "\\n昨日访问: " + _yesterday1 + "\\n您的访问量: " + _user_visit;
if (int.Parse(dv[0].Row["isOnlinestat"].ToString()) == 1) _outstr += "\\n在线人数: " + _online_person;
_outstr += "' target='_blank'><img border='0' src='" + _url + "/sysImages/folder/stat.gif'></a>";
break;
case "0": //TEXT文本方式显示总数,统计方式比较单一简单。
_outstr = _all1.ToString();
_outstr = "总量:" + _all1.ToString() + ",最高日期:" + strhightime1 + ",今日:" + _today1 + ",昨日:" + _yesterday1 + ",您的访问量:" + _user_visit + "";
break;
default: //默认
_outstr = "<a href='http://www.netcms' title='" + dv[0].Row["SystemName"].ToString() + "\\n总量: " + _all1 + "\\n最高访问量: " + inthigh1 + "\\n最高访问量日期: " + strhightime1 + "\\n今日访问: " + _today1 + "\\n昨日访问: " + _yesterday1 + "\\n您的访问量: " + _user_visit;
if (int.Parse(dv[0].Row["isOnlinestat"].ToString()) == 1) _outstr += "\\n在线人数: " + _online_person;
_outstr += "' target='_blank'><img border='0' src='" + _url + "/sysImages/folder/stat.gif'></a>";
break;
}
//输出,统计数据
//Response.Expires = DateAdd("n", _IPtimeResh, now());
Response.Write("document" + "." + "write(\"" + _outstr + "\")");
#endregion
#endregion
}
#endregion
else //检查是否非法调用
{
PageError("意外错误:未知错误", "shortcut_list.aspx");
}
#endregion
}
/// <summary>
/// 取IP
/// </summary>
/// <param name="_ip"></param>
/// <returns></returns>
public long _GetIP(string _ip)
{
string[] _streachip = _ip.Split('.');
long _intip = 0;
for (int i = 0; i < 4; i++)
{
_intip += (long)(int.Parse(_streachip[i]) * System.Math.Pow(256, 3 - i));
}
return _intip;
}
/// <summary>
/// 连接IP地址数据库并执行SQL语句
/// </summary>
/// <param name="sql">SQL语句</param>
/// <returns>返回数据表</returns>
protected DataTable stat_AcDb(string sql)
{
OleDbConnection conn = new OleDbConnection();
string str_dirMana = NetCMS.Config.UIConfig.dirDumm;//获取用户虚拟路径
if (str_dirMana != "" && str_dirMana != null && str_dirMana != string.Empty)
{
str_dirMana = @"/" + str_dirMana;
}
conn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;data source=" + Server.MapPath(str_dirMana + "/database/AddressIp.mdb") + "";
try
{
conn.Open();
}
catch (OleDbException e)
{
PageError("打开IP地址数据库失败!失败原因:" + e.ToString(), "");
}
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
DataTable dt = null;
DataSet ds = new DataSet();
da.Fill(ds, "table");
try
{
dt = ds.Tables["table"];
}
catch (Exception ee)
{
PageError("未知错误!错误原因:" + ee.ToString(), "");
}
finally
{
conn.Close();
conn.Dispose();
}
return dt;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -