0

このphpログインおよびリダイレクトソフトウェアの一部として、セキュリティで保護するためにすべてのページの先頭に追加する必要のあるコードがあります。有効なユーザーログイン情報を持っている場合、ユーザーは完全にオンになりますが、別の「保護された」ページに移動して元のページに再度アクセスしようとすると(または、アドレスをコピーして新しいタブに貼り付けてアクセスしようとすると)、アクセス拒否画面。

このエラーは、セッションキャッシュヘッダーに問題があるために発生しますか、それともより深刻な問題ですか?

現在、次のようになっています。

 <?php
session_start();
session_cache_limiter();
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: post-check=0, pre-check=0",false);

require('config.php');

require('functions.php');

//this is group name or username of the group or person that you wish to allow access     to
// - please be advise that the Administrators Groups has access to all pages.
if (allow_access(Users) != "yes")
{
include ('/home/folder/public_html/members/no_access.php');
exit;
}
?>

他の人の質問などからヘッダーを変更してみましたが、問題は変わりません。また、関連するリンクを調べて、壊れていないことなどを確認しました。

アクセス許可機能は次のようです。

function allow_access($group)
{
        if ($_SESSION[group1] == "$group" || $_SESSION[group2] == "$group" || $_SESSION[group3] == "$group" ||
                $_SESSION[group1] == "Administrators" || $_SESSION[group2] == "Administrators" || $_SESSION[group3] == "Administrators" ||
                $_SESSION[user_name] == "$group")
                {
                        $allowed = "yes";
                }else{
                        $allowed = "no";
                }
        return $allowed;
}
4

1 に答える 1

0

あなたは必要ありません:

session_cache_limiter();
header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: post-check=0, pre-check=0",false);

そして、実際に問題を引き起こしているものかもしれません。

あなたは私たちに何を言うことによってこの答えを改善することができます:

allow_access

は。そしてもちろん、textualyesまたは。の代わりにブール値を使用しますno

また、何Usersですか?それは私が見ているものからの定数ではなく、私が見ているものからのオブジェクトではなく、変数ではありません...それで、それは何ですか?

于 2012-08-24T13:13:58.570 に答える