您的位置:首页 > 编程语言 > PHP开发

PHP 九种预定义超全局变量

2015-11-13 10:59 417 查看
PHP供提供了九种预定义超全局变量
  $_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILE、 $_COOKIE、$_SESSION、 $GLOBALS。在这里,我们介绍其中的六种。
1.$_GET
原理图:





示例:
test.php页面

<?php
//urlencode编码
echo "<a href='a.php?city=北京好&name=xiaoming'>传送数据</a>";
?>
a.php页面
<?php
echo "<pre>";
echo print_r($_GET);
echo "</pre>";
//如果希望指定取出某个数据,则可以通过下标名
echo $_GET['name'];
?>

$_GET也可以接收表单以get方式提交数据。

<form action=”a.php” method=”get”>
//....
</from>


2.$_POST
使用率最高。
描述:表单中通过Http POST方式提交的数据,会被封装到$_POST超全局数组中。
示例:




register.php
<html>
<head>
<metahttp-equiv="content-type"conten="text/html;charset=utf-8"/>
</head>
<body>
<h1>用户注册</h1>
<formaction="register2.php" method="post">
用户名:<input type="text"name="username"/></br>
密码:<input type="text"name="password"/></br>
性别:男<input type="radio"name="sex" value="men"/>女<input type="radio"name="sex" value="women"/></br>
你喜欢什么:
<!--hobby是以数组的方式采集数据-->
<inputtype="checkbox" name="hobby[]" value="跳舞">跳舞
<inputtype="checkbox" name="hobby[]" value="唱歌">唱歌
<inputtype="checkbox" name="hobby[]" value="篮球">篮球
<inputtype="checkbox" name="hobby[]" value="足球">足球</br>
你的所在地是:
<selectname="city">
<optionvalue="beijing">北京</option>
<optionvalue="tianjing">天津</option>
<optionvalue="nanjing">南京</option>
</select>
<br/>
个人介绍:
<textarea rows="10"cols="30" name="introduce">
</textarea></br>
<input type="submit"value="提交"/>
</form>
</body>
</html>

 register2.php

<?php
$name= $_POST['username'];
$pwd= $_POST['password'];
$sex= $_POST['sex'];
$hobby= $_POST['hobby'];

echo"个人信息如下:</br>";
echo"姓名:".$name."</br>";
echo"密码:".$pwd."</br>";
echo"性别:".$sex."</br>";
echo"兴趣爱好:";
foreach($hobbyas $key=>$value)
echo$value."、";
echo"</br>";
echo"个人介绍:".$_POST['introduce'];
?>
POST 提交 和GET 提交的区别:
①   安全性,POST高与GET;
②   数据传输大小,受限于浏览器,POST高于GET;
③   保存到收藏夹,GET提交可以将数据保存到收藏夹,超链接默认是GET提交。
 
3.$_REQUEST
描述:$_REQUEST中可以包括$_GET/$_POST/$_COOKIE数组,所以我们可以理解为$_REQUEST包含了这些数组的信息。
示例:
<?php
echo"<pre>";
echoprint_r($_REQUEST);
echo"</pre>";

//如何取出某个值
//$_REQUEST既可以接收get请求的数据,也可以接收post请求的数据,以及cookie
//所以这个变量,比较不可以信,不建议使用$_GET/$_POST
echo$_REQUEST['aa'];
?>
注意事项:
①    不要经常使用$_REQUEST;
②    如果不确定是GET/POST请求时,可以这样     

if($_SERVER['http_method']=="post"){
$echo$_POST['名字'];
}elseif($_SERVER['http_method']=="get"){
//用$_GET接收
}
 
4.$_SERVER
描述:$_SERVER中主要包含了Http请求行和消息头的信息,同时还有服务器自己的一些信息,比如DOCUMENT_ROOT,SCRIPT_FILENAME等。
示例:
①    请求获取该页面的客户机的ip地址。
$_SERVER['REMOTE_ADDR']
②    显示服务器端apache的版本号和php版本号。
$_SERVER['SOFTWARE']
③    根据$_SERVER的REQUEST_METHOD来决定使用_GET还是_POST方法接收数据。
④    利用$_SERVER 的HTTP_REFERER 来防止盗链行为。

5.$_ENV
描述:环境变量。当我们希望获取服务器端的环境信息时,可以使用 $_ENV。在php5.3.5中,默认情况下不能使用$_ENV,你会得到空值,这是出于对安全的考虑。如果希望使用$_ENV,可以通过修改php.ini的variables_order ="EGPCS"(EGPCS是Environment、Get、Post、Cookies、Server的缩写)实现。但是在开发环境,我们不建议这样配置。

6.$GLOBALS
描述:包含了全部变量的全局组合数组。变量的名字就是数组的键。同时一个自定义的全局变量,也会自动的被$GLOBALS管理。

示例:

<?php
$a=900;
echo "<pre>";
print_r($GLOBALS);
echo "</pre>";
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: