0

皆さん、この件に関する私の経験不足をお許しください。

私は基本的な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");
}
4

2 に答える 2

0

スーパーグローバル $_session でコントロール セッションを適用している可能性があります。$_GET や $_POST 変数など、この $_SESSION si を確認してください。

http://us3.php.net/manual/en/function.session-start.php

于 2013-11-08T22:34:14.043 に答える
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この判断を行うための関数呼び出しによって表されています)。

これを達成する方法はいくつもあります。ログインが必要なページの配列をハードコーディングし、現在実行中のページがこの配列にあるかどうかを確認する機能を持たせることができます。比較などのために、データベースから安全なページのリストを取得することもできます。アプリを理解していなければ、この点で何が最適かについてアドバイスを提供することはできません。

于 2013-11-08T22:38:40.307 に答える