在 PHP 登录脚本中显示页面


display pages in php login script

请原谅我对每个人都缺乏这方面的经验。

我已经创建了一个基本的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来做出此决定)

有很多方法可以实现这一点。您可以对需要登录的页面数组进行硬编码,并具有检查当前正在执行的页面是否在此数组中的函数。 您可以从数据库中提取安全页面列表进行比较等。如果不了解您的应用程序,我们就无法为您提供有关在这方面最适合您的建议。