超级全局变量
超级全局变量在php4.1后被启用,是php系统中自带的变量,在一个脚本的全部作用域中都可以用。
php中预定义了几个超级全局变量,这意味着它们在一个脚本的全部作用域中都可用。不需要特别说明,就可以在函数及类中使用。
php超级全局变量列表:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
$GLOBALS
$GLOBALS是php的一个超级变量组,在一个php脚本的全部作用域中都可以访问 $GLOBALS是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。使用方法:(在变量的文章中也有提到)
在这边变量z为$GLOBALS数组中的超级全局变量,该变量可以在函数外访问。
$_SERVER
$_SERVER是一个包含了诸如头信息、路径、以及脚本位置等等信息的数组。这个数组中的项目有web服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
在这边出现一个报错,根据提示是 $_SERVER[HTTP_REFERER],后来我搜了一下报错的原因, $_SERVER[HTTP_REFERER]提供了引导用户代理到当前页的前一页的地址信息,常见的一些应用场景有防盗链,统计文章有多少次是俩字谷歌,多少次来自百度搜索结果等。HTTP_REFERER存在需要两个条件:
- 浏览器(客户端)请求(服务器端请求的情况下,是不存在HTTP_REFERER的,但是可以伪造header)
- 存在前导页
以下为所有$_SERVER变量中的重要元素:
$_REQUEST
$_REQUEST用于收集HTML表单提交的数据。
实例:
显示一个输入字段(input)及提交按钮(submit)的表单(form)。当用户通过点击“Submit“按钮提交表单数据时,表单数据将发送至< form >标签中action属性中指定的脚本文件。在这个实例中,我们指定文件来处理表单数据。其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:
$_POST
$_POST 被广泛应用于收集表单数据,在HTML form 标签的指定该属性:method = “post”
实例:
显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。用其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:
在这边我将在htmlspecialchars.php中进行post提交数据,然后在超级全局变量.php中收集提交的数据
$_GET
$_GET同样被广泛用于收集表单数据,在HTML form 标签中的指定该属性:method = “get”。 $ _GET也可以收集URL中发送的数据
假设我们有一个包含参数的超链接HTML页面:
<html>
<body>
<a href = "超级全局变量.php?subject=123&web=abc.com">Test $GET</a>
</body>
</html>
当用户点击链接“Test $GET”,参数“subject”和“web”将发送至“超级全局变量.php”,我们就能在“超级全局变量.php”文件中使用 $_GET变量来获取这些数据。
超级全局变量代码:
<?php
echo "study" . $GET['subject'] . "@" . $_GET['web'];
?>