只能从本站的页面打开 内容页面。
包括浏览器 直接输入地址 ,页面就显示 出错 PHP代码要怎么写?有大侠能给出代码吗?

解决方案 »

  1.   

    if(!isset($_SERVER['HTTP_REFERER']) || trim($_SERVER['HTTP_REFERER']) == ''){
      exit('error!');
    }加到页面上就OK了.
      

  2.   

    《PHP5与MYSQL5 web开发技术详解》一书的第五章,“处理用户输入”中提到,可以依靠验证$_SERVER['HTTP_REFERER']来提高表单的安全性,对此我来谈谈自己的看法。原书中说道,PHP的$_SERVER服务器超级全局数组提供了一个叫$_SERVER['HTTP_REFERER']的变量,用于保存上一页的来源,比如表单提交或者超级链接的URL地址。如果有人从他的计算机中提交表单或从浏览器地址中直接输入当前脚本名称,该变量会保存表单来源或为空值,这样我们就可以通过它的值进行处理。但事实上,$_SERVER['HTTP_REFERER']这个变量其实是由浏览器端提供的,这个变量的值能否取到以及是否正确,其实是由浏览器决定。Web连接是不保持状态的,所有网页信息从服务器上下载到本地,再由本地提交到服务器,因此从本地篡改$_SERVER['HTTP_REFERER']的内容完全是可行的。而且在许多情况下,$_SERVER['HTTP_REFERER']是取不到值的,比如访问经JavaScript产生的链接、访问Flash中的链接、用meta进行跳转时等情况,而且有些客户端(浏览器)甚至会完全没有设置这个变量。因此,我认为用$_SERVER['HTTP_REFERER']验证表单来源从而提高安全性的做法没有意义。这种做法甚至连“轻量级”都算不上,完全是在浪费资源。提高表单安全性,还是应该强调对表单数据的验证。
      

  3.   

    这个是我在网络上搜到的讲了很多的方法,你可以去看下
    http://wqsl.net/blogs/web/php/03/200804/02-16.html
      

  4.   

    就是看 HTTP_REFERER,要是别人伪就没有办法了
      

  5.   

    自己google一下HTTP_REFERER的用法