我正在尝试为我的网站创建一个计数器
我在网上查看了很多示例,但大多数都没有我正在寻找的正确形式。
例如,在我创建的大多数命中计数器上,我所做的只是按下刷新,命中就会上升。我不想要那个。我也尝试使用 .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 文件,那么活动会话是否仍然适用?最后,我必须关心cookies吗?
拜托,我知道谷歌分析提供免费服务,但我不想使用它们。我还需要学会自己开发这些东西。
谢谢