当前位置:编程学习 > C#/ASP.NET >>

统计访问次数

请问怎样统计一个网站的访问次数?

当用户第一次访问一个网站的首页访问次数+1,然后访问别的页面时不进行垒加,
直到用户退出网站后访问结束,这个周期只算一次。

大家有没有好的解决方案,非常感谢! --------------------编程问答-------------------- cookies中保留这个用户的IP地址,


如果ip地址不存在 添加ip并且+1

如果ip存在 不理睬他 --------------------编程问答-------------------- 就是没人写点代码看看 --------------------编程问答-------------------- 注册一个 免费统计代码   

只放到你网站首页不就行了?

非要自己写代码吗?   --------------------编程问答-------------------- 在global里面 程序开始 +1 就可以了 这个不难呀  到摆渡找下嘛
最好存放到数据库里面 登陆就+1 --------------------编程问答--------------------
引用 4 楼 rewoshengqi 的回复:
在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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,