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

是。当然使用布尔值而不是文本yesno.

又是什么Users?它不是我所看到的常数,它不是我所看到的对象,也不是变量......那是什么?

于 2012-08-24T13:13:58.570 回答