<?php
echo $_SERVER['HTTP_REFERER'];
?>将返回上一页面的url,
可以将他的结果和你需要从哪个网址过来,相比较,相同则允许浏览,否则返回错误提示。

解决方案 »

  1.   

    有个问题:从A窗口到B窗口是合法的,所以从A连接到B,显示正确。如果不是从A直接连接到B,就显示错误。我先从A连接到B,正确。然后再回到A,直接输入地址进入B,则显示为正确,一定要刷新一下才正常显示错误。请问怎样解决这个问题
      

  2.   

    <? 
    if(!$_SERVER['HTTP_REFERER'] or $_SERVER['HTTP_REFERER']!="http://localhost/1.php"){
    echo "错误:(";
    }else{
    echo "正确:)";
    }
    ?> 第一行中的http://localhost/1.php换成你的a窗口地址。
      

  3.   

    从a正常进入b后,再返回a,在a的地址栏里打b的地址,我这边不用刷新还是提示错误
    这样行不??
    <?
    echo"<meta http-equiv=\"Pragma\" content=\"no-cache\">";
    echo"<meta http-equiv=\"no-cache\">";
    echo"<meta http-equiv=\"Expires\" content=\"-1\">";
    echo"<meta http-equiv=\"Cache-Control\" content=\"no-cache\">";
    if(!$_SERVER['HTTP_REFERER'] or $_SERVER['HTTP_REFERER']!="http://localhost/1.php"){
    echo "错误:(";
    }else{
    echo "正确:)";
    }
    ?> 
      

  4.   

    用session检测把,将你允许访问的几个页面增加session标记变量,比如说$_SESSION['canlogin']=".....";然后在要访问的页面内判断这个变量,如果你确信资料的话,可以将省去判断session变量值的步骤而直接判断SESSION变量是否存在,如果存在访问合法,否则失败 如果担心SESSION变量与其他发生冲突则判断值...
      

  5.   

    如果你的A与B不在同一个站点上的话,你可以.....  考虑使用COOKIE,  总体来说,如果可以实现使用COOKIE,以及SESSION认证的话,比你单纯的依靠HTTP_REFERER要准确的多.
      

  6.   

    feel8(准备早起的鸟) ,有你的代码,上面的问题解决了。
    但是我又遇到一个棘手的问题。也是残留上一次的内容,直到刷新后才变为正确的。
    有什么办法可以通过在网页onload或者重新获得焦点等的手段来彻底刷新网页。我试过在onfocus()时用refresh()也不能使残留内容刷新。不知道怎样解决这个问题。是不是可以用删除缓冲区的内容,甚至关闭浏览器缓冲区。有谁能解决的。我另加30分