<script src="http://XXX.XXXX.XX.XX/stat.php?fro="+document.referrer> 
这样当然不可以 地址是不经过运行的
但可以曲线的实现
<script src="http://XXX.XXXX.XX.XX/stat.js" />
stat.js中通过XMLHttpRequest来访问http://XXX.XXXX.XX.XX/stat.php并且在GET中传递当前页面的地址可以第一步用$_SERVER["HTTP_REFERER"]获得页面地址 如果失败输出JS代码 再失败往不可见区域插张图片 好像对于图片访问浏览器会发送来源地址到$_SERVER["HTTP_REFERER"]不一定对 呵呵 没测试过其实最简单的办法就是看谁实现了这个功能 把JS拿回来稍微改改 弄清原理写个PHP脚本就实现了

解决方案 »

  1.   

    个人认为原则上这个应是可以的
    但没测试过document.referrer要进行编码,确保传值给stat.php,只要stat.php没有输出,不影响
    A页面
    <script src="http://XXX.XXXX.XX.XX/stat.php?fro="+document.referrer> 
      

  2.   

    document.referrer要进行编码,这是什么意思,能说得更清楚些吗。stat.php是没有输出的。好象只有<script src="http://XXX.XXXX.XX.XX/stat.php?fro="+document.referrer>这种调用方式,才不会产生页面跳转问题,但不传送变量值,真是一大缺陷。
      

  3.   

    这是大部分统计网站的做法:A站:
    <script src="http://XXX.XXXX.XX.XX/count.js"> 
    B网:
    count.js
    ----------------------
    var fromurl="";
    try {fromurl=top.document.referrer;} catch(err) {fromurl="";} finally {fromurl=(fromurl=="")?document.referrer:fromurl;}
    fromurl=escape(fromurl);document.write("<img src=http://XXX.XXXX.XX.XX/stat.php?fro="+fromurl+">");
      

  4.   

    按楼上的,在A站上只显示一个打红叉的图标,变量值fromurl没有传到stat.php中。好象不执行啊。
      

  5.   


    document.write(" <img src=http://XXX.XXXX.XX.XX/stat.php?fro="+escape(document.referrer)+">");
    放在A的js 里
      

  6.   

    我是放在A里的,
    <script  language="javascript" type="text/JavaScript" charset="gb2312">
    var fromurl="";
    fromurl=top.document.referrer;
    document.write(fromurl);此句能显示出来路地址
    document.write("<img src='http://xx.xx.xx.xx/stat.php?fro='+fromurl width='50' height='50'>");此句只在A上显示一个打红叉的图标,变量值fromurl没有传到stat.php中去,只否<img src=语句是不能传送变量值的?还是打叉的图标表示这句根本就没执行到stat.php程序中去。?
    </script> 
      

  7.   

    document.write(" <img src='http://xx.xx.xx.xx/stat.php?fro="+fromurl+"' width='50' height='50'>");
      

  8.   

    google “PHP get 传值编码”
      

  9.   

    小小地总结一下啦:其实并没有什么难点的,现在document.referrer已经拿到值,关键就在于这个值怎么传到统计服务器上。1. 用一张图片。src是stat.php?from=, 后面要跟document.referrer编码后的值,可以用js来做,和php的urlencode一样的。
    2. script标签也是同理。
    3. 隐藏的iframe
    4. httpRequesst反正能把这个变量传给stat.php就行,在stat.php处用$_GET['from']就可以拿到值
      

  10.   

    to seaprince,
    1. 用一张图片。src是stat.php?from=, 后面要跟document.referrer编码后的值,可以用js来做,和php的urlencode一样的
    我试了多次,现在问题是,传都传不过去,并不是说,传过去的值不对啊,这与是否编码没有关系啊。
    2、script标签,我试了很多次,根本不能传变量值,不知道你有没有确切试过?
    其它两种复杂了。
    所以最好能够有第一种方法可实现,有没有人确切试过,并成功的?迫切需要有经验的兄弟指点。
      

  11.   

    对比一下两者的不同
    你的
    document.write(" <img src='http://xx.xx.xx.xx/stat.php?fro='+fromurl width='50' height='50'>");
    我的
    document.write(" <img src='http://xx.xx.xx.xx/stat.php?fro="+fromurl+"' width='50' height='50'>");
      

  12.   

    to xuzuning ;
    我直接这样写,
    document.write("<img src='http://xx.xx.xx.xx/stat.php?fro=111' width='50' height='50'>");
    在stat.php里都得不到值,不知道是怎么回事???只在页面上显示一个打红叉图片框,框大小倒是对的(因为我没有输出图片,这不要紧)。
      

  13.   

    没有输出图片?那你如何知道没有结果???你把stat.php写成这样
    <?php
    $im = imagecreate(200,50);
    $background_color = imagecolorallocate($im, 255, 255, 255);
    $text_color = imagecolorallocate($im, 233, 14, 91);
    imagestring($im, 1, 5, 5,  print_r($_GET,1), $text_color);
    imagepng($im);
    imagedestroy($im);
    ?>
      

  14.   

    我真是佩服唠叨兄,这么多年了,还没厌倦回答这种问题。看下来我真想喷血。<script src="http://XXX.XXXX.XX.XX/stat.php?fro="+document.referrer> 
    这里的referrer就是一个html里的字符串。请弄清楚JS环境和HTML环境的区别。
      

  15.   

    总结,经过与楼上各位的讨论,我已验证通过以下代码,作为此贴的总结,供后来者参考:
    1、在A网站页面放置一段统计代码如下: 
    <script src="http://XXX.XXXX.XX.XX/stat.php> 
    B网站上放置stat.php统计程序 
    代码为:
    <?php
    echo "var fromurl='';";
    echo "fromurl=top.document.referrer;"; (取得用户的来路地址)
    echo "document.write(fromurl+'<br>');";
    echo "document.write(\"<iframe src='http://x.x.x.x/count.php?fro=\"+fromurl+\"' width='350' height='150'></iframe>\");";  将包含有来路地址的变量fromurl传给统计程序count.php。 (如果width=0 height=0则不会将帧框架显示出来)
    ?>
    这样,就可以将fromurl变量内的值传送给count.php。