超全局变量和前后端数据交互

php php 1165      收藏
熟悉PHP中的超全局变量 使用$_GET和$_POST进行数据交互 案例: 计算器 考试系统

熟悉PHP中的超全局变量 

使用$_GET和$_POST进行数据交互 

案例: 计算器 考试系统 

超全局变量是系统内置变量,无需手动创建 

超全局变量在脚本的全部作用域中都可用 

超全局变量都是数组 


$_GET:

通过url传递给当前脚本的变量;

$_POST:

通过HTTP POST  方法传递给当前脚本的变量;

我们一般使用$_GET和$POST来接收用户提交的数据;

$_CO0KIE:

通过http cookies方式传递给当前脚本的变量;存在用户电脑上的


$_SESSION:

当前脚本可用的session变量的数组,存在服务器上面的。


$_FILES:

通过HTTP POST 方式上传到当前脚本的文件信息;用来做文件上传使用的

$_CO0KIE和$_SESSION用来追踪用户信息,


$_SERVER 

变量由Web服务器设定或者直接与当前脚本的执行环境相关联 

$_ENV 

执行环境提交至脚本的变量 

$_REQUEST(里面的信息比较杂乱,而且安全性比较低) 

由于 $_REQUEST 中的变量通过 GET,POST 和 COOKIE 输入机制传递给脚本文件,因此可以被远程用户篡改而并不可信。 $GLOBALS 

包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称。

$_SERVER 

    这种超全局变量保存关于报头、路径和脚本位置的信息。 

$_SERVER['PHP_SELF'] 

    当前正在执行脚本的文件名,与 document root相关 

$_SERVER['SERVER_NAME']

    当前运行脚本所在服务器主机的名称。 

$_SERVER['DOCUMENT_ROOT']

    当前运行脚本所在的文档根目录。 

$_SERVER['HTTP_REFERER']

    链接到当前页面的前一页面的 URL 地址。

$_SERVER['REMOTE_ADDR'] 

    正在浏览当前页面用户的 IP 地址。可以用来验证ip,验证访问频率。

$_SERVER['REMOTE_HOST'] 

    正在浏览当前页面用户的主机名。 

$_SERVER['REMOTE_PORT'] 

    用户连接到服务器时所使用的端口。 

$_SERVER['SCRIPT_FILENAME'] 

    当前执行脚本的绝对路径名。

$_SERVER['SERVER_PORT'] 

    服务器所使用的端口 

$_SERVER['SCRIPT_NAME'] 

    包含当前脚本的路径。在页面需要指向自己时很有用。 

$_SERVER['REQUEST_URI'] 

    访问此页面所需的 URI。例如,“/index.html”。分层时会用到!!!





案例:

所有的全局变量都不需要定义,直接使用就可以!

<?php

echo "<pre>";//网站上线时不可以有这句话。

print_r($_SERVER );

?>


$_ENV

$_ENV数组中的内容是在PHP解析器运行时,从PHP所在服务器中的环境变量转变为  PHP全局变量的。它们中的许多都是由PHP所运行的系统决定。 


$_FILES

在使用表单文件输入框(type=“file”)上传文件时,必须使用POST提交。

但在服务器文件中,并不能通过$_POST超级全局数组获取到表单中file上传框的内容,而$_FILES超级全局数组是表单通过POST方法传递的已上传文件项目组成的数组,$_FILES是一个二维数组,包含5个子数组。

做文件上传时,表单必须用post,不可以用get。


$_COOKIE 

$_COOKIE 超全局数组是经 HTTP Cookies 方法提交至脚本的变量。

这些 Cookies 是由以前执行的PHP脚本通过setCookie()函数设置到客户端浏览器中的,当PHP脚本从客户浏览器提取了一个 cookie 后,他将自动把它转换成一个变量,可以通过 $_COOKIE 和 cookie名 来存取指定的cookie值。 

不同网站有不同的cookie。

cookie是有时效的,可以设置存多久。


$_SESSION

会话控制是在服务器端使用session追踪用户。当服务器页面中使用session_start()函数开启session后,就可以使用$_SESSION数组注册全局变量。

要在页面使用函数,首先要在页面最前面启用session_start()函数。

$_SESSION


$GLOBALS

$GLOBALS是有所有已定义的全局变量组成的数组,变量名就是该数组的索引。在所有的脚本中都有效,在函数和对象的方法中不需要使用global关键字访问它。

<?php 

$a=1; 

function fun(){      

echo($GLOBALS["a"]);       

fun(); 

?> 

--------------------------------

<?php 

$a=1; 

function fun(){      

print_r($GOLBALS);       

fun(); 

?> 

可以输出全部的全局变量,和页面中的变量,不包含函数中的变量。不推荐使用全局变量,容易和外部的混淆。

自学php博客