统计访问次数
请问怎样统计一个网站的访问次数?当用户第一次访问一个网站的首页访问次数+1,然后访问别的页面时不进行垒加,
直到用户退出网站后访问结束,这个周期只算一次。
大家有没有好的解决方案,非常感谢! --------------------编程问答-------------------- cookies中保留这个用户的IP地址,
如果ip地址不存在 添加ip并且+1
如果ip存在 不理睬他 --------------------编程问答-------------------- 就是没人写点代码看看 --------------------编程问答-------------------- 注册一个 免费统计代码
只放到你网站首页不就行了?
非要自己写代码吗? --------------------编程问答-------------------- 在global里面 程序开始 +1 就可以了 这个不难呀 到摆渡找下嘛
最好存放到数据库里面 登陆就+1 --------------------编程问答--------------------
我在Global里面写过统计,但是运行的时候为什么没有执行到Global中的代码 吗?
是不是要配置什么东西? --------------------编程问答-------------------- 我刚好做了一个这样的东东,首先,建立一个asax的文件 是.asax哦....
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Xml.Linq;
namespace wbes_a
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
#region OnlineUser
try
{
DataTable userTable = new DataTable();
userTable.Columns.Add("SessionID");
userTable.Columns.Add("UserIP");
userTable.Columns.Add("Browser");
userTable.Columns.Add("OSName");
userTable.AcceptChanges();
Application.Lock();
Application["OnlineUsers"] = userTable;
Application.UnLock();
}
catch
{
throw;
}
#endregion
}
protected void Session_Start(object sender, EventArgs e)
{
string sessionID = Session.SessionID;
string UserIP = Request.UserHostAddress;
HttpBrowserCapabilities bc = Request.Browser;
string OSName = "Win2000";
switch (bc.Platform)
{
case "WinNT 5.1":
case "WinXP":
OSName = "Windows XP";
break;
case "WinNT 5.0":
OSName = "Win2000";
break;
case "WinNT":
OSName = "Win2003";
break;
default:
OSName = bc.Platform;
break;
}
string Browser = bc.Type;
DataTable userTable = (DataTable)Application["OnlineUsers"];
if (userTable == null)
return;
DataRow[] curRow = userTable.Select("SessionID='" + sessionID + "'");
if (curRow.Length == 0)
{
DataRow newRow = userTable.NewRow();
newRow["SessionID"] = sessionID;
newRow["UserIP"] = UserIP;
newRow["Browser"] = Browser;
newRow["OSName"] = OSName;
userTable.Rows.Add(newRow);
userTable.AcceptChanges();
Application.Lock();
Application["OnlineUsers"] = userTable;
Application.UnLock();
}
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
}
protected void Session_End(object sender, EventArgs e)
{
Hashtable onlineUsersHash = (Hashtable)Application["OnlineUsers"];
onlineUsersHash.Remove(Request.UserHostAddress);
string seesionid = Session.SessionID;//取得当前sessionID
DataTable usersTable = (DataTable)Application["OnlineUsers"];
if (usersTable == null)
return;
foreach (DataRow row in usersTable.Select("SessionID='"+seesionid+"'"))
{
usersTable.Rows.Remove(row);//移除session
}
usersTable.AcceptChanges();
Application.Lock();
Application["OnlineUsers"] = usersTable;
Application.UnLock();
}
protected void Application_End(object sender, EventArgs e)
{
}
}
}
然后,在新页面aspx上面
DataTable userTable = null;
userTable = (DataTable)Application["OnlineUsers"];
if (userTable != null)
{
GridView1.DataSource = userTable;
GridView1.DataBind();
}
--------------------编程问答-------------------- --------------------编程问答-------------------- 用Application它类似于全局变量
补充:.NET技术 , ASP.NET