请原谅我对这个主题缺乏经验。
我创建了一个基本的php登录系统,并试图让人们安全地访问某些页面。
我的问题是我只能添加您在下面看到的登录页面。
if ($login->isUserLoggedIn() == true) {
include("views/logged_in.php");
如何向安全视图添加更多页面。假设我已将它们链接到logged_in文件。当我将它们上传到服务器时,我会继续获得403.路径都是正确的。
<?php
if (version_compare(PHP_VERSION, '5.3.7', '<')) {
exit("Sorry, Simple PHP Login does not run on a PHP version smaller than 5.3.7 !");
} else if (version_compare(PHP_VERSION, '5.5.0', '<')) {
require_once("libraries/password_compatibility_library.php");
}
require_once("config/db.php");
require_once("classes/Login.php");
$login = new Login();
if ($login->isUserLoggedIn() == true) {
include("views/logged_in.php");
} else {
include("views/not_logged_in.php");
}
答案 0 :(得分:0)
您可能已经使用superglobar $ _session应用控制会话。请检查这个$ _SESSION si,如$ _GET或$ _POST变量。
答案 1 :(得分:0)
你所展示的问题是你似乎并没有将页面定义为需要在任何地方登录。
您可能希望在每个页面的顶部附近(可能是全局包含)中有类似的内容,这些内容会在发送任何其他标头之前执行:
if (page_requires_login() && $login->isUserLoggedIn() == false) {
// send 403 header and exit or redirect or whatever it is you want to do with insecure requests
}
// continue page logic
当然,这里的问题是如何确定页面是否需要登录(在我的示例中由函数调用page_requires_login
表示以进行此确定)
有很多方法可以实现这一目标。您可以硬编码需要登录的页面数组,并具有检查当前正在执行的页面是否在此数组中的功能。您可以从数据库中提取安全页面列表以进行比较等。如果不了解您的应用程序,我们可以在这方面给您提供很多建议。