RT,比方说百度首页,怎么判断是通过别处的链接打开的百度首页,而不是刷新百度首页得到的百度首页,需要做数据统计用。急用,请各位大神赐教

解决方案 »

  1.   

    这起始地址是怎么判断呢,而且还得是看这一个用户的,虽然知道每个用户被分配了不同的SessionID,但怎么来获得用户的SessionID呢
      

  2.   

    通过如下来判断当前页面来自的转向this.Request.UrlReferrer.ToString()
      

  3.   

    我是通过浏览A.html时后台打开B.aspx,当然B页面不显示出来,B页面是做统计用的,如果A页面刷新数据不更新,如果是从别的页面比如C.html进入A页面数据更新,对于this.Request.UrlReferrer.ToString()好像只能判断是从A页面进到B页面的,不管是A—>A还是C—>A都是获得的A的地址,可有别的方法吗
      

  4.   

    如果想作弊,你是没方法防止的。使用UrlReferrer判断就很好。
    或者在页面中使用Cookie,第一次进入写cookie,刷新当然就可以判断cookie是否存在来解决
      

  5.   

    我是通过浏览A.html时后台打开B.aspx,当然B页面不显示出来,B页面是做统计用的,如果A页面刷新数据不更新,如果是从别的页面比如C.html进入A页面数据更新,对于this.Request.UrlReferrer.ToString()好像只能判断是从A页面进到B页面的,不管是A—>A还是C—>A都是获得的A的地址。对于试用Cookie我还是不了解这块,而且有些浏览器会建议客户端禁用Cookie,所以也不是太理想
      

  6.   

    你可以这样啊
    document.write("<script src='b.aspx?from=" + document.referrer + "'></sc"+"ript>")进行统计
      

  7.   

    还是不行呢protected void Page_Load(object sender, EventArgs e)
        {
            string ID = Request["ID"];
            string aa = Request["preurl"];
            string s = "select Hits from testhits";
            string preurl = Request.UrlReferrer.ToString();
            if (preurl == Request.UrlReferrer.ToString())
            {
                int a = Convert.ToInt32(Select(s).Tables[0].Rows[0]["Hits"]);
                if (ID == "123")
                {
                    a++;
                }
                bool b = Update("update testhits set hits=" + a);
            }
        }
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        
        <!--<script type="text/jscript" language="Javascript" src="GetData.aspx?ID=123">
        </script>-->
        <script type="text/jscript" language="Javascript">
            document.write("<script src='GetData.aspx?ID=123&&preurl="+document.referrer+"'></sc" + "ript>");
        </script>
    </head>
    <body>
        <input id="Text1" type="text" />aaaaaa
    </body>
    </html><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
    <a href="SendPage.htm">aaa</a>
    </body>
    </html>
    这是我现在自己实验用的代码,麻烦您给看看。aspx页面没东西,只是在后台写了那点判断的
      

  8.   

    刚才我尝试单步执行它跳不到aspx那个页面去进行判断,之前我用注释掉的那个src可以调到并进行判断。第1个html是打开后进行数据更新的,第2个只是说从另一个页面跳转到第一个html的
      

  9.   

    <script type="text/jscript" language="Javascript">
    改成
    <script type="text/javascript">或者就写成
    <scrip>即可
    非IE都不认jscript的,代码不会执行
      

  10.   

    但是,这样写也并不能禁止刷新页面执行的。
    好的方法是
    ID + IP 来记录在Cookie中,
      

  11.   

    刚才试了试,去掉后确实能跳转了,但是现在又有一个问题,如果是从C.html跳转到B.html,B页面中的document.referrer会一直是C.html的地址,不管刷不刷新,所以还是不太行。至于用Cookie,如果用户的浏览器禁用Cookie怎么办呢,现在好多浏览器都有这功能了
      

  12.   


    protected void Page_Load(object sender, EventArgs e)中的e 判断是否是单击事件,如果是的话就是点击进入的。
      

  13.   

    麻烦您看一下我中间的那些回复,是由两个html和一个aspx写的页面,aspx页面不显示出来,而是有一个html页面后台打开的,怎么着也不是单击事件啊