我做了一个JS方法创建了一个记录网站访问数的程序

在页面中添加
<script type="text/javascript" src="http://192.168.1.105/ClickTale.aspx"></script>
然后在
ClickTale.aspx
将数据写入数据库我这里用SessionID来记录访问人数
但奇怪的是在我的    protected void Page_Load(object sender, EventArgs e)
    {
        String script = "";
        String dd = Session.SessionID; //这里的SessionID竟然不能唯一, 每次刷新都会是不同的
        //script += "alert(escape(window.document.referrer));";
        //URL是取当要统计的页面的来源的页面地址
        script += "document.write('<img src=\"http://" + Request.Url.Host + (Request.Url.Port == 80 ? "" : ":" + Request.Url.Port) + ResolveUrl("Info.aspx") + "?URL=' + escape(window.document.referrer) + '&guid=" +DateTime.Now.ToString("HHmmss") + DateTime.Now.Millisecond + "\" style=\"display:none\" />')";
        Response.Clear();
        Response.Write(script);
    }那什么我这里的Session.SessionID会一直变呢
这样的话我就取不了访问人数了,难道在被统计的页面里面的
http://192.168.1.105/ClickTale.aspx
每次都是一个新的链接吗, 那我要怎么办呢谢谢

解决方案 »

  1.   

    不同的人员访问session都是不一样的吧;这个要使用也是application把
      

  2.   

    不是的啦...
    是同一个人员,我刷新页面
    我那个统计表的SessionID就会变谢谢
      

  3.   

    你如果不给session付值他会重新分配sessionid的你可以写个例子试一下,很简单,如下:
    protected void Page_Load(object sender, EventArgs e)
        {
            Session["s"] = "s";//如果你把这行注释掉的话.你会发现sessionid每次刷新都会变的,但你给付值后再看一下
            string s = Session.SessionID;
            Response.Write(s);
        }
      

  4.   

    可以自定义sessidid然后对其赋值,这样同一个用户sessionid都会是这个值,
    写入数据库,然后判断
      

  5.   

    但是这样的东东一般都是采用Application来处理的
      

  6.   

    RE:
    lz你把我上边的例子放到一个页面里.(狂点刷新) 
    然后注释掉第一行试一下,然后再取消注释再试一下你就明白了.
    ---------------------------------------------------    protected void Page_Load(object sender, EventArgs e)
        {
            Session["ReferrerLog_ClickTale"] = "ReferrerLog_ClickTale";
            String script = "";
            String dd = Session.SessionID;
            //script += "alert(escape(window.document.referrer));";
            //URL是取当要统计的页面的来源的页面地址
            script += "document.write('<img src=\"http://" + Request.Url.Host + (Request.Url.Port == 80 ? "" : ":" + Request.Url.Port) + ResolveUrl("Info.aspx") + "?URL=' + escape(window.document.referrer) + '&guid=" +DateTime.Now.ToString("HHmmss") + DateTime.Now.Millisecond + "\" style=\"display:none\" />')";
            Response.Clear();
            Response.Write(script);
        }
    以上是我改了的程序但还是不行
    当我用浏览器访问这个页面
    也就是说打入地址的时候,刷新,他的SessionID是不会变,满足了我的要求
    但当我用:
    <script type="text/javascript" src="http://192.168.1.105/ClickTale.aspx"> </script> 
    如果这样的话他的SessionID还是会变
      

  7.   

    RE:但是这样的东东一般都是采用Application来处理的
    -------------------------------------------
    我这个是用来统计多个网站的流量
    也就是说将这条js放在哪里我就会有对他进行统计谢谢
      

  8.   

    刚发现c#的sessionId是只读的和php不一样,关注一下,
    个人认为是不回变的,会不会是其它原因
      

  9.   

    正常的你必须操作了session才会固定一个SessionID例如:Session["x"]=1;以后访问的页面就是同一个SessionID
      

  10.   

    你做网站统计就应该用IP而不是Session吧,你要统计什么?
      

  11.   

    你每次刷新都是不同的会话,当然SessionID不一样...