【发布时间】:2013-11-13 11:46:44
【问题描述】:
我正在尝试为我的网站创建计数器
我在网上查看了很多示例,但大多数都没有我正在寻找的正确形式。
例如,在我创建的大多数命中计数器上,我所做的只是按下刷新键,命中就会上升。我不想要那个。 我也尝试使用 .xml 文件,但无济于事。我只是按住 F5 键,然后我的命中率就上升了。 所以我知道我需要使用数据库。我打算使用 MS Access 数据库,因为它很小(只有一个表),并且在发布时可以很容易地放在网站上。
我对如何添加点击有一个大致的了解:
OleDbConnection conn = null;
OleDbDataReader reader = null;
try
{
conn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0; " +
"Data Source=" + Server.MapPath("App_Data/TestDB.mdb"));
conn.Open();
OleDbCommand cmd =
new OleDbCommand("insert into Hits Values(" + hits + "", conn);
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
Response.Write(e.Message);
Response.End();
}
应该是这样的。它类似于我希望的 SQL。 无论如何,我的问题是,当用户返回该页面(主页)时,命中计数器会增加。 我听说过活动会话,并且想知道这是否是我应该使用的。如果这是正确的方法,我如何在我的网站上完全实施它? 基本上,我怎样才能确保 Bob 登录并使用该站点,访问所有页面 5 次并且点击计数器只注册一次?这样当 Jane 登录该站点时,她会看到她是第二个(在 Bob 之后)查看该站点的人?
会不会是这样的:
Session["logged"] = "On";
if(Session["logged"].ToString().Equals("On");
{
hits = 1;
//add the data to database
}
从这里我迷路了。 如果数据库可以避免使用 .xml 文件,那么活动会话是否仍然适用? 最后,我需要担心 cookie 吗?
请注意,我知道 Google 分析提供免费服务,但我不想使用它们。我还需要学会自己开发这些东西。
谢谢
【问题讨论】:
标签: asp.net session ms-access hitcounter