文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 网络编程 >> NET编程 >> 文章内容  
 

 
XML+Application来编写计数器

www.hx99.org 阅读: 时间:2007-07-12 整理:华西黑盟
------------------------------------------------------------------
 网站总共访问人数计数器

这种计数器我们可以使用XML来实现,打开windows的记事本在其中录入以下数据另存为count.xml。
<MyCount>
<AllCount>0</AllCount>
<MaxCount>0</MaxCount>
</MyCount>
其中AllCount标签是记录web页面访问的总人数的,我们来编写代码操纵这个xml文件
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.OleDb"%>//导入…
<Scriptlanguage="C#"runat=server>
HttpCookieCkeCount=newHttpCookie("Count");//来一个cookie变量,用来判断访客是否在您的网站
voidPage_Load()
{
if(Request.Cookies["Count"]==null)//如果cookie为空,说明第一次载入您的页面
{
CkeCount.Value="true";//给cookie添加一个值
/*这里是可选代码,看看cookie是否失效,如果您设置成1个月,有个访客以前访问过您的站点,他的cookies里面有您存入的值,并且他的cookies没有清空那么再看if语句,那这个访客载入页面时在计数器中就不加1,如果您不设置cookies保留时间,那么访客离开 您的站点cookie自动消失。
DateTimedt=DateTime.Now;
TimeSpants=newTimeSpan(30,0,0,0);
CkeCount.Expires=dt+ts;
*/

///**********xml操作****************************8
DataSetobjDataSet=newDataSet();
objDataSet.ReadXml(Server.MapPath("count.xml"));//dataset读xml文件
objDataSet.Tables["MyCount"].Rows[0]["AllCount"]=Convert.ToInt64(objDataSet.Tables["MyCount"].Rows[0]["AllCount"])+1;//这里是写如xml,更新第一行Allcount标签的值+1
objDataSet.WriteXml(Server.MapPath("database/count.xml"));//写如xml
Response.Cookies.Add(CkeCount);//写入cookies

lbCount.Text="总共"+objDataSet.Tables["MyCount"].Rows[0]["AllCount"].ToString();//显示在页面上
}
</script>
<asp:labelrunat=serverid=lbCount/>

2)当前在线人数计数器

判断当前有几个人在您的站点,这个计数器比较简单,这里要用到Application变量和session的2个方法Application变量起着增加,减少人数的作用。
在global.asax文件里面输入以下代码:
<scriptlanguage="c#"runat="Server">
protectedvoidApplication_Start(Objectsender,EventArgse)
{
Application["user_sessions"]=0;//声明一个application变量来做计数器
}
protectedvoidSession_Start(Objectsender,EventArgse)
{
Application.Lock();//先锁定应用程序,这里大家都明白
Application["user_sessions"]=(int)Application["user_sessions"] +1;
//当session_start方法启动时判断当前有几个人在线,然后赋值到Application["user_sessions"]变量.(int)强制转换类型,卸箱,装箱!
Application.Unlock();
}
protectedvoidSession_End(Objectsender,EventArgse)
{
Application.Lock();
Application["user_sessions"]=(int)Application["user_sessions"] -1;
//当用户离开站点的时候,减1卸箱,装箱!Object=int
Application.Unlock();
}
都要写在Session_OnStart,和Session_OnEnd方法里面.
</script>
设置label控件把值读出.

3)最大在线人数统计

这个就很简单了,这里用application变量配合xml来完成,
global.asax
Application.Lock();//锁定应用程序
DataSetobjDataSet=newDataSet()
objDataSet.ReadXml(Server.MapPath("database/count.xml"));//读xml文件
if(Convert.ToInt64(objDataSet.Tables["MyCount"].Rows[0]["MaxCount"])<(int)Application["user_sessions"])//如果MaxCount标签里面的值小于当前在线人数的值,就存入,不小于则什么都不做。
objDataSet.Tables["MyCount"].Rows[0]["MaxCount"]=(int)Application["user_sessions"];
objDataSet.WriteXml(Server.MapPath("database/count.xml"));
Application.UnLock();

4)统计今日在线人数计数器

这里要用到日期时间变量和2application变量,声名Application["datetTime"],和Application["day_count"]变量
global。Asax文件
Application["dateTime"]=0;//先给赋为0
Application["day_count]=0;//今日访问统计变量,初始值为0
Application.Lock();
if(DateTime.Now.Day==Convert.ToInt32(Application["dateTime"]))
//如果系统日期(天数,服务器上的)等于Application["dateTime"]里面的值,则Application["day_count"]变量累加1.
{
Application["day_count"]=(int)Application["day_count"]+1;
}
else//如果不等于则把Application["day_count"]变量赋为1,Application["datetime"]赋为当天,依次类推
{
Application["datetime"]=DateTime.Now.Day;
Application["day_count"]=1;
}

Application.UnLock();

总结
-----------------------------------------------------------------------------------
网站总共访问人数计数器也可以设置成每ip,,代码自己写了:)还有最好把代码放在首页,这样统计还比较现实,因为一个新的浏览者80%不可能从别的页面来访问您的站点。

统计最大在线人数计数器为什么要存入xml文件呢?存入application变量不行吗?很简单:如果服务器断电了那岂不是白存了?

当然这些计数器都不是很准确,但是能大体表现一个网站的流量了

 

   -------------------------------------------------------------------------------------------
  上一篇:关于TreeView控件专题
  下一篇:Web Service初探(推荐)
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
推荐:ASPX一句话木马--终
利用ASP.Net 动态生成HTML
asp.net实现验证码
在asp.net中利用session做
Asp.net 中在客户端触发服
Asp.net 中服务端控件事件
ASP.NET上传图片并生成可
ASP.NET AJAX解决网页打开
实现IE浏览器部分菜单命令
Asp.net一夜速成教程
从sqlserver中读取图片
ASP.NET页面间的传值的几
用动态属性和DataView实现
用PagedDataSource类实现D
关于TreeView控件专题
asp.net上传图片并同时生
ASP.NET中水晶报表的使用
ASP.NET 中 Cookie 的基本
ADO.NET使用经验集
Forms身份验证
ASP.NET四种页面导航方式
ASP.NET中如何防范SQL注入
[分享]ASP.NET学习手记```
ASP.NET编程中的十大技巧
用ASP.NET上传图片并生成
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号