问题标签 [superglobals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
111474 浏览

php - 警告“不要直接访问超全局 $_POST 数组”在 Netbeans 7.4 for PHP

当我使用$_POST$_GET$_SERVER时,我在 Netbeans 7.4 for PHP 上收到了这条消息警告。

不要直接访问超全局 $_POST 数组

这是什么意思?我能做些什么来纠正这个警告?

编辑:事件示例代码仍然显示此警告。

0 投票
1 回答
127 浏览

php - 有没有办法通过 html 表单传递超全局变量?

根据我目前的经验,当一个脚本被称为 HTML 表单“动作”时,它被分配了一组新的超全局变量。

有没有办法通过 html 表单传递超全局变量?此外,我想知道通过 include/require 语句调用 PHP 脚本与将其作为表单操作调用相比有什么区别。

谢谢!

0 投票
3 回答
1137 浏览

php - 注销全局?

我很难理解这个功能。我知道 register_globals 是什么以及它从 PHP 中贬值了多长时间,但我正在查看这段代码,我想,里面有什么?...

我不明白的部分是这个......

这个 foreach 循环循环遍历我们定义的 $array 中的每个值,然后内部 foreach 循环从 GLOBALS 中获取一个超级全局数组,无论它是 _REQUEST、_SESSION、_SERVER、_ENV、_FILES 等......检查 $var 是否等于 GLOBAL 变量或不等于。如果是这样,那么我们将取消设置。

但是我仍然很难解决这个问题......

更新 这是我正在试验和调试的代码片段。如果 register_globals 处于打开状态,并且黑客来了,将 ?auth=1 插入到查询字符串中,会发生什么?auth 会从 GLOBALS 中删除还是会被回显?

谢谢你的时间。

0 投票
1 回答
280 浏览

php - 检查脚本是否在开发服务器或产品服务器上运行的更好方法

几年来,我一直使用通常推荐的方法来检查页面是本地调用还是远程调用,方法是检查是否$_SERVER['SERVER_ADDR']等于 127.0.0.1 或为空。这已在其他问题中讨论过,例如thisthis。其他超全局变量$_SERVER['REMOTE_ADDR']也经常被提及。

随着时间的推移,我发现这种方法有时似乎会失败。

我真正想知道的是脚本是在我的开发服务器(xampp、wamp、IDE 调试器...)还是在生产服务器上调用的。这样可以正确设置 Web 根目录之上的脚本路径。虽然这在 99.999% 的情况下都有效,但似乎有时,当 Apache 重定向到 404 页面时,$_SERVER['SERVER_ADDR']肯定会丢失,并且在生产服务器上运行的脚本通过了“本地”测试。

因此,我正在寻找其他方法。当然,我在 Apache 中可能做错了什么,但无论如何,最好在 php 中进行一个万无一失的测试。

我想到了几个想法,我想知道这些是否安全,或者是否有人有更好的想法。

A. 一个想法是查看当前路径:类似于

B. 另一个想法是检查是否存在具有特定名称的本地文件,但访问文件系统似乎工作量太大。

提前感谢所有见解!

0 投票
2 回答
168 浏览

php - 获取 $_GET 和 $_POST 值,但不获取 $_COOKIE 值

我想使用 $_REQUEST,但如果它来自 cookie,我不想要该值。做这个的最好方式是什么?这就是我目前的做法。谢谢

0 投票
1 回答
50 浏览

php - 将 CLI 参数注册到 GET 时的全局注册问题

在这里遇到了一个奇怪的人,也许一些更资深的人可以帮助我得出关于到底发生了什么的结论(已经有一个解决方法,但想知道如何解决这个问题,因为它似乎会影响其他人事物)

所以我有一行代码可以检测 CLI 字符串(基于 type[0]),然后继续将 CLI 参数转换并加载到 GET 参数中。

效果很好,您可以通过创建文件并发出类似的东西来测试它

使用上面的行和文件的内容只是一个print_r($_GET);

好吧,当您尝试将其用作 filter_input 我注意到但无法弄清楚原因时,它会变得很奇怪

看起来filter_input_array一般来说,尝试在 GET 请求上添加任何东西都被放弃了,例如

出于未知原因,什么有效的是

对我来说几乎没有意义=(

我想相信我们的 GET 不知何故没有注册到全球范围内,但我不知道为什么......

我正在为 Saucy 运行 PHP 5.5.8,欢迎输入

0 投票
2 回答
46 浏览

php - 如何使用 $_POST 显示提交的数据

我有一个这样命名的输入:

name="ListPassengers[0].Lastname"

我如何显示该值,因为当我使用$_POST['ListPassengers[0].Lastname']

我收到以下错误:

注意:未定义索引:C:\wamp\www\3\res.php 中的 ListPassengers[0].Name

0 投票
1 回答
97 浏览

php - 虽然 $_FILE 超全局没有被传递

因此,我正在研究一种文件上传表单,该表单似乎从一个步骤到另一个步骤丢失了超级全局文件中的信息。所以我要做的是在通过验证码验证之前打印出超级全局文件,然后在通过验证码验证后将其打印出来。由于某种方式,我在验证验证码后丢失了信息。我曾尝试将信息存储在 cookie 和会话变量中,但没有成功。就 cookie 方向而言,只有当我在验证码验证之前点击刷新时,它才会将文件超级全局信息保存到 cookie 中。在会话存储方面,它在我验证验证码之前将信息存储在会话变量中,但在验证验证码后会丢失它。各位大侠能帮忙吗,先谢谢了。我的代码如下:

HTML 表单

所以上面的代码是我一直在使用的原始代码。它本质上是在验证验证码后进行文件上传,这就是我失去 $_FILES 超级全局的地方

回答:感谢所有查看我问题的人。问题是验证码是在它自己的页面上设置了 enctype 的形式。因此,$_FILES 超级全局变量被形式 $_FILES 覆盖,这当然没有设置。

0 投票
1 回答
1214 浏览

php - 传递 $_POST 值以输出单个结果信息

我的目标是创建一个用于INSERT INTO testquiz(MySQL 表)的通用模板。这将用于存储来自测验者的测验结果和用户信息(姓名和电子邮件是数据库中唯一的用户输入)。我是 PHP/MySQL 的新手,感觉自己只是在磕磕绊绊。

我的问题是我无法让$_POST测验生成的值出现在数据库中。我知道这些值正在生成,因为它们将显示一个基本的回声。有一个“发送到电子邮件”功能也适用于有效的值。如果我$_POST通过取消注释第一个注释块手动为数组分配值,我可以让这段代码工作。

我在这里想念什么?

旁注:我也会接受安全建议。谢谢你。

下面的代码(省略用户特定信息):

0 投票
2 回答
1017 浏览

php - 在一个类中包装超全局变量?

我应该直接叫他们的名字$_GET, $_POST, $_SESSION //etc,还是应该把他们包在一个班级里?例如对于 POST 超全局,如果未设置某个数组索引,它会返回 false 吗?

假设我有一个 Validator 类。所以我必须像这样遍历每个字段,$_POST['name']但如果没有设置它会返回一个未定义的索引错误。但是,如果它返回 false 则不会发生。

有没有使用超全局变量的首选方法或最佳实践?