如何在多个网站上唯一标识同一个用户?

时间:2011-06-01 11:41:08

标签: java javascript mysql cookies project

我正在做一个广告网络作为学士学位的项目。 我试图在多个网站上识别同一个用户。我的数据库中有一个USER表,ID为auto_increment number。

在我追踪的网站中,我收录了以下Javascript:

   function OnLoad()
   {
   var requestURI = window.location;
   var resolution = screen.width + 'x' + screen.height;
   var colorDepth = screen.colorDepth;
    var query = '?requestURI=' + encodeURIComponent(requestURI)
         + '&resolution=' + encodeURIComponent(resolution)
         + '&websiteid=' + encodeURIComponent(id);
   document.getElementById("body").innerHTML = "<img src ='http://dan-vaio:8080/licenta/bannerimg.gif'" + query + " width = 500 height = 200 />"; // this is the place where i want to display my banner
   }

在服务器端调用横幅选择算法,我得到一个5个横幅的队列,我想向这个用户显示。 (只有当用户第一次加入本网站时,否则我必须在队列中显示剩余的横幅。还没有想出如何做到这一点,我可以将队列保留在会话中吗?)。

问题是:如果我在servlet中的响应中添加一个cookie,当同一个用户加入另一个网站时它是否可用?

我有这个:

   Cookie cookie = new Cookie("DisplayedBanners",visitedBanners); //
   response.addCookie(cookie);

如何唯一识别用户?如何生成一个唯一的ID来保存在cookie和数据库中,所以当同一个用户访问另一个网站并调用我的servlet时,我会知道他是谁。

非常感谢。

2 个答案:

答案 0 :(得分:1)

如果您使用会话,横幅队列将无法正常工作。会话在服务器上维护。如果你去其他网站,同样的旧会话将不起作用。

我建议您将此信息保存在数据库中。

因此,将last_shown_banner_tag与user_id保存在一个表中。 该表应该在网站中很常见。

答案 1 :(得分:0)

这里解释了如何进行多域cookie,但是在PHP中(需要调整Apache)

http://www.tutorialized.com/tutorial/Implementing-Cross-Domain-Cookies/372