PHP登录网站文件夹

时间:2010-11-17 10:47:28

标签: php login directory

我的网站上有一个名为“admin”的文件夹即。 www.example.com/admin/,所以我想要做的是当有人到达该地址时会显示一个登录框,一旦他们输入了正确的凭据,他们就可以看到该“admin”文件夹中的所有内容,所以我是否需要在每个页面的顶部放一张支票,或者我可以将支票贴在index.php页面上?

这可能吗?

5 个答案:

答案 0 :(得分:2)

如果您计划在PHP中使用会话,则应检查是否在成功登录用户访问的页面上设置了适当的会话变量。

详细说明,你需要使用这样的东西:

<?php
session_start();

if($_SESSION['usertype'] != 'admin') //$_SESSION['usertype'] should be set in the index page once the admin guy logs in successfully
header("Location:http://www.example.com/admin/"); //Redirect the user to the login page if the expected session variable is not found
?>

答案 1 :(得分:2)

如果您想通过PHP执行此操作,则必须在每个源文件中包含代码,以检查此人是否具有正确的凭据。您真的想通过基于Web服务器的解决方案来解决这个问题。

如果您使用的是Apache,则可以使用.htaccess文件来设置身份验证。尝试This article迈出正确方向的第一步。

使用基于服务器的身份验证还允许您保护非PHP文件。

答案 2 :(得分:2)

当有人转到该文件夹​​时会显示index.php。没有它,将显示内容(所有文件),这就是我想你想要的东西(即列出所有内容)

但是,可以在.htaccess文件中设置权限,以要求对这些文件进行密码访问。

通过这种方式,您的文件不需要单独保护,只需要文件夹本身。

答案 3 :(得分:0)

也可以通过 .htaccess 来实现(有点),具体取决于您的实际要求。

AuthType Basic
AuthName "Admin Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

<强> htpasswd的

admin:$apr1$7ej2t/..$qlcauURCmChKfwVhnxRLt.

(管理员/通)

答案 4 :(得分:0)

您的主要入口点可以是index.php,并根据是否设置了SESSION将用户路由到正确的视图。

至于阻止文件夹中的其他文件:

对于PHP文件:在index.php中定义一个常量,并在包含的其他PHP文件的顶部检查它是否“已定义”。

对于图像和其他类型的文件,您可以将它们存储在根目录上,并通过PHP包含它们。