$url=getenv('REMOTE_ADDR');
用提交页面所在服务器的ip来判断。

解决方案 »

  1.   

    可能是PHP版本的问题。
    试试
    $_SERVER['HTTP_REFERER'];
      

  2.   

    to  uGain:
    $url=getenv('REMOTE_ADDR');
    这个函数100%管用吗?不会误伤无辜吧?比如用网景,opera,webtv,aol之类的浏览器,都没问题吧?我曾在我的log文件中建国软件屏蔽HTTP_REFERER的情况,这个REMOTE_ADDR有没有被屏蔽或禁止的可能呢?
      

  3.   

    在post页的表单中加入一个隐藏域,在表单开始写:
    <form name="form1" method="post" onsubmit="form1.MyHid.value=location.href;">
    接收文件中就有 $_POST['MyHid']这个变量就是前一页的URL. ok!
      

  4.   

    不要用引用页来判定是否安全,这个是客户端提交的,作假实在太容易了,比方说常用的 FlashGet 就可以自定义引用页。而且这类的专门工具也很多,如小榕的朔雪之类的
      

  5.   

    不要打客户端的主意,那是你根本无法控制的,包括 IP 在内所有信息都是可以伪造的hotel9545(清风剑客) 的那个注意,如果我真想冒充的话,我完全可以把该页 save as 到本地,然后把 onsubmit="form1.MyHid.value=location.href;"> 改成我想要的,之后提交一般来说,使用 cookie 或者 session 已经够了
      

  6.   

    To  iProgram:
    刚才说的getenv("REMOTE_ADDR");是浏览当前页面用户的地址,不能用来做为判断的依据。不好意思。To hotel9545:
    如果我在页面中加一个<input type=hidden name=MyHid value="http://www.abc.com/filename.php">的话,是不是就算合法了。