补充:刚开始我想过用HTTP_REFERER,但是a调用b,并没有转页,所以HTTP_REFERER是空的.

解决方案 »

  1.   

    可以啊,建一个虚拟主机,只监听127.0.0.1,把b.php放在那个主机的document_root里
    调用http://127.0.0.1/b.php
      

  2.   

    有些场合可以这样调用:
    在a.php里面调用
    <script src="b.php"></script>然后b.php里面检测refer...
      

  3.   

    用session做一个记号,其它页面过来的或直接输入url的,session值没有这个记号,如何?
      

  4.   

    相当于inclue
    referer应该不行吧.
    我想session应该可以吧.
      

  5.   

    <script src="b.php"></script>
    这种调用方法可以取的refer的,
    <?
    $str1=$_SERVER["HTTP_REFERER"];
    if (ereg("xxx.com/...",$str1),$str1)) {
    ...
    } else {
    ...
    }
    ?>
    可以自己测试下
      

  6.   

    include的话,把b放到访问不到的目录去就行了。
    比如web目录外面
      

  7.   

    如果是a.php include/require b.phpa.php中
    在include('b.php');之前定义变量
    $TEST=1;在b.php中检查
    if(!isset($TEST)) die();
      

  8.   

    love01px(JAVA CUP)的办法又简单又好用,或者也可以直接取一个谁也想不到的名字,就可以了,反正在外面谁也见不到a.php的源代码,自然就不知道b的名字了。
      

  9.   

    谢谢各位,如果a是html的话,能不能限制,只有a能访问呢?
      

  10.   

    A中作个SESSION,作为标志,在B中最前方判断
      

  11.   

    POST
    b.php搞个检测来源或者SESSION也可以