查看某些页面的权限

时间:2011-11-06 14:01:50

标签: php frames

我正在创建一个有两个用户界面的网站。卖家和买家。目前,我将这些文件存储在一个文件夹下(例如:/interfaces/frame.php)。因此,对于这两种情况,文件都存储在那里。

我可以通过检查数据库中的用户类型来确认用户,并确定他们是买家,他们只能看到买家界面,卖家是卖家界面。问题是这些文件可以公开访问,所以如果你去domain.com/interfaces/frame.php它会显示给你。

我可以进行哪些更改,以便它们无法公开访问,但我可以将其提供给用户。

我正在使用include(“file.php”);用于加载相应的用户界面。

4 个答案:

答案 0 :(得分:5)

您可以将这些文件存储在Web根目录下,以便您的目录如下所示:

includes
  -permission-needed-files
public_html
  -CSS
  -Javascript
  -Images
  -Anything that can be accessed publicly

您仍然可以包含includes文件夹中的文件,因为它们位于Web根目录下,所以无法公开访问它们。

另一种方法是在所有必需文件的顶部包含一个php文件,该文件检查会话变量以查看是否允许它们访问该文件。如果他们没有使用标题来重定向他们

答案 1 :(得分:3)

基本上,PHP与大多数Web服务器没有绑定到Webroot。

因此,如果您有一个好的托管服务,您应该能够将PHP文件存储在一个根本无法从Web访问的文件夹中。然后,您应该存储一个只显示Web文件夹中的内容的php文件,另一个存储调用数据库或包含服务器的非Web文件夹中的数据的文件。

Web可以通过文件系统路径(而不是Web URL)调用none web one。

(这将是他的awnser中提到的MVC模式Jonathan非常非常轻量级的实现。)

当你准备好使用框架时,我会推荐使用Zend Framework。

答案 2 :(得分:2)

在最基本的情况下,您可以在文件的每个文件中添加一个检查,以确保通过include调用它,

main.php

  

$ isIncluded = 1;   ...你的页面逻辑的其余部分......   包括( “./ includefile.php”);

然后在includefile.php中

  

if(!$ isInclude){die(“抱歉,此页面无法访问)   直接。“);}

答案 3 :(得分:1)

您可以考虑查看模型视图控制器开发模式,并在请求页面本身时在控制器中执行访问逻辑。我建议将CodeIgniter和Kohana作为两个很好的框架来开发。它们都很简单,可以帮助您在几分钟内解决这个问题。

当然,您还需要为数据库制定一些条款以容纳组和角色。这样您就可以将用户添加到组中,然后授予某些组访问某些页面的权限。