通过在url中键入链接来拒绝对php文件的直接访问

通过在url中键入链接来拒绝对php文件的直接访问,php,session,Php,Session,我使用php会话进行基本登录,而不加密我的站点。我想防止用户在未登录时通过键入url直接访问php页面。但这并没有发生。我正在使用session_start(),初始化会话变量,并在注销期间取消设置和销毁session。此外,如果我在其他浏览器中键入链接,则会显示页面。 我不是很精通php,只是一个初学者。我在谷歌上搜索了这个问题,发现几乎没有其他解决方案,比如将所有文件与web根目录分开保存在一个单独的文件夹中,使用.htaccess等。有人能简单地解释一下什么是一个好的解决方案吗?提前谢谢。

我使用php会话进行基本登录,而不加密我的站点。我想防止用户在未登录时通过键入url直接访问php页面。但这并没有发生。我正在使用session_start(),初始化会话变量,并在注销期间取消设置和销毁session。此外,如果我在其他浏览器中键入链接,则会显示页面。
我不是很精通php,只是一个初学者。我在谷歌上搜索了这个问题,发现几乎没有其他解决方案,比如将所有文件与web根目录分开保存在一个单独的文件夹中,使用.htaccess等。有人能简单地解释一下什么是一个好的解决方案吗?提前谢谢。

有很多解决方案,但基本上只有在会话有效的情况下,你才需要生成页面。如果无效,请将用户分流到非访问显示器。如果您有这个,但它似乎不起作用,也许您应该发布一些代码


    • 有很多解决方案,但基本上只有在会话有效时才需要生成页面。如果无效,请将用户分流到非访问显示器。如果您有这个,但它似乎不起作用,也许您应该发布一些代码


      这是否意味着我必须在每页的开头检查有效会话?是的。但根据您的方案,您也可以检查会话变量。因此,您可能正在验证用户的访问权限,这与检查会话有效性不同。我不确定使用会话作为标准是否有效。无效会话意味着您肯定会阻止访问,但有效会话可能会为您的授权提供变量。很抱歉,上面的注释不清楚。不过,我相信这些链接可能会有所帮助!使会话变量$valid有效。从错误开始。登录成功后,将其设置为TRUE。注销时,为FALSE。在每页的顶部使用此作为您的标准。在安排这项工作时,有一些安全方面的考虑。但是你会有一个比jsut更灵活、更健壮的解决方案来关闭会话。谢谢,这似乎是一个很好、很简单的解决方案,很抱歉回答部分,习惯了stackoverflow。这是否意味着我必须在每一页的开头检查有效会话?是的。但根据您的方案,您也可以检查会话变量。因此,您可能正在验证用户的访问权限,这与检查会话有效性不同。我不确定使用会话作为标准是否有效。无效会话意味着您肯定会阻止访问,但有效会话可能会为您的授权提供变量。很抱歉,上面的注释不清楚。不过,我相信这些链接可能会有所帮助!使会话变量$valid有效。从错误开始。登录成功后,将其设置为TRUE。注销时,为FALSE。在每页的顶部使用此作为您的标准。在安排这项工作时,有一些安全方面的考虑。但是,与jsut关闭会话相比,您将拥有一个更灵活、更健壮的解决方案。谢谢,这似乎是一个很好且简单的解决方案。对于回答部分,我很抱歉,我已经习惯了stackoverflow。