请原谅我对每个人都缺乏这方面的经验。
我已经创建了一个基本的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");
}
您可能已经应用了超 globar $_session 的控制会话。请检查这个 $_SESSION si 像 $_GET 或 $_POST 变量。
http://us3.php.net/manual/en/function.session-start.php
您显示的内容的问题在于,您似乎没有将页面定义为需要在任何地方登录。
您可能希望在每个页面的顶部附近(可能在全局包含中)有这样的东西,它将在发送任何其他标头之前执行:
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
来做出此决定)
有很多方法可以实现这一点。您可以对需要登录的页面数组进行硬编码,并具有检查当前正在执行的页面是否在此数组中的函数。 您可以从数据库中提取安全页面列表进行比较等。如果不了解您的应用程序,我们就无法为您提供有关在这方面最适合您的建议。