我有一个有三页的网站。 blog.html
,home.html
和games.html
。
我在每个页面上向我的服务器发出ajax请求,以跟踪用户访问过的页面。
我想知道,跟踪用户sessions
的最佳方法是什么。例如,我的朋友史蒂夫继续访问我的网站home.html
,然后决定转到games.html
,然后最终决定转到blog.html
,然后关闭他的计算机。
这就像我对网页浏览进行分组的用户的整个“会话”。实施此项目的最佳做法是什么?
提前谢谢!
创意:一个想法是使用javascript参考的网址跟踪会话。这是一个好方法吗?
答案 0 :(得分:4)
您可以使用PHP sessions这是针对此常见问题的开箱即用解决方案。
当你真的想要建立自己的教育活动时,这就是他们的工作方式:
当用户访问网站时,PHP脚本会检查是否已设置cookie。如果没有cookie,它会自动生成一个随机ID并将其写入cookie。这些SessionID和有关用户会话状态的所有信息都是服务器端保存的。当您拥有数据库时,可以将其存储在那里,但您也可以根据需要使用文件。
sessionID应该是唯一的,以避免重复并且无法猜测,以便没有用户可以伪造其sessionID来窃取另一个用户的身份。因此,sessionID的生成算法应包括当前时间(毫秒)和随机数。
当用户禁用Cookie时,您仍然可以将SessionID作为GET-argument放入网站的每个链接中进行跟踪。例如,当用户SessionID为1f6fe6894d32c5时,网址href="games.php"
变为href="games.php?sid=1f6fe6894d32c5
。
当您使用url-method时,您还应该将sessionID绑定到IP地址,因为当用户向您的网站发布链接时,他们可能会忘记从URL中删除其sessionID,您的网站会相信每个点击该链接的人是同一个用户。但即使您检查IP,它仍然可能导致在同一代理或NAT路由器后面的用户之间无意(或故意)会话窃取。所以不要将URL sessionID用于任何安全问题。
答案 1 :(得分:1)
好吧,如果您只是想要添加用户访问过的页面,请将每次访问保存在数据库中,并附上日期/时间戳+ ip以及您需要的任何其他信息。
然后,您可以稍后使用此信息查看用户何时访问了任何特定网站。 您还可以通过向链接添加额外参数来跟踪用户来自的链接,即如果您在第2页上有2个指向主页的链接,那么这些链接可能如下所示 href =“home.php?ref = link2”,您也可以将此信息存储在数据库中。
有很多方法可以做到这一点,但最后,我建议使用评论中建议的现成软件。