首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP常量包含

问PHP常量包含
EN

Stack Overflow用户
提问于 2016-06-29 02:51:45
回答 1查看 53关注 0票数 0

我在PHP中遇到了一个问题,我花了2个小时来解决这个问题。

我有一个应用程序,我希望所有用户都从index.php文件开始。该文件包括登录文件和内容文件。

现在,通常用户可以直接访问content.php文件。

出于这个原因,我定义了一个常量,它是在用户从index.php开始时设置的。

这个文件看起来像

代码语言:javascript
复制
define('NAME','X');
include("Login.php");
include("content.php");

现在我定义了常量,如果这个常量被设置为显示我的数据,我想检入我的包含文件。在Login文件中,这是没有问题的。然后我有第二个,如果我像这样写它,它是有效的:

代码语言:javascript
复制
    if(defined('NAME'))
    {
        showContent();
    }

但我也有$_POST检查,但它不工作!

代码语言:javascript
复制
if(defined('NAME'))
{
if (isset ( $_POST ["Login"] ) ) 
{
    if ($_POST ["Login"] == "True" ) {      
        echo showContent();
    }
}
}

在没有if(定义(‘NAME’))的情况下,它工作得很好!我从一个javascript文件中获取post变量。

你能给我解释一下为什么它只适用于定义的if而不适用于第二个吗?

显然,常量的定义是正确的。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-06-29 02:57:16

常量不像会话值,它不会跨多个页面持久存在。

当您对页执行POST请求时,不再定义常量,因此不会执行您的代码。

如果您使用常量作为安全措施来防止未经授权的访问,您可以考虑执行与您现在所做的相反的操作,而不是检查是否设置了常量,检查是否设置了常量,然后执行403。

代码语言:javascript
复制
if(!defined('NAME')) {
    die('403');
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38084103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档