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