PHP预定义超全局数组 $_POST 、$_REQUEST 讲解

$_POST:
描述 : 通过Http POST 方式提交的数据,会被封装到$_POST超全局数组中.
举例: 接收表单信息:
PHP预定义超全局数组 $_POST 、$_REQUEST 讲解_第1张图片
代码:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<h1>用户注册</h1>
<form action="register2.php" method="post">
用户名:<input type="text" name="username"/><br/>
密码<input type="password" name="passwd"/><br/>
性别:<input type="radio" name="sex"  value="female" />女 <input type="radio" name="sex"  value="male" />男<br/>
你喜欢什么:
<input type="checkbox" name="hobby[]" value="唱歌">唱歌
<input type="checkbox" name="hobby[]" value="跳舞">跳舞
<input type="checkbox" name="hobby[]" value="游泳">游泳
<input type="checkbox" name="hobby[]" value="骑马">骑马
<br/>
你的所在地是:
<select name="city">
<option value="beijing">北京</option>
<option value="tianjing">天津</option>
<option value="nanjing">南京</option>
</select>
<br/>
个人介绍 :
<textarea rows="10" name="intro" cols="30">
</textarea><br/>
你选择图片<input type="file" name="myphoto"/><br/>
<input type="submit" value="提交"/>
</form>
</html>

register1.php页面

<?php
       //看看如何接收
       echo "<pre>";
       echo print_r($_POST);
       echo "</pre>";
       //关心爱好
       $name=$_POST['username'];
       $pwd=$_POST['passwd'];
       //如何接收checkbox提交的数据
       $hobbies=$_POST['hobby'];
       echo "个人信息如下<br/>";
       echo "$name--$pwd";
       //print_r($hobbies);
       echo "该人的爱好";
       foreach($hobbies as $key=>$val){
              echo "<br/>$key=$val";
       }
       echo "<br/>你的所在地是";
       $city=$_POST['city'];
       echo $city;
       echo "<br/>个人介绍如下";
       $intro=$_POST['intro'];
       echo "<br/>$intro";
      
       echo "<a href='#'>查看调查情况</a>"
?>

post和get的区别:
① 安全性  post>get
② 数据传输大小 [浏览器] post>get
保存到收藏夹 get比较方便.


$_REQUST:

定义: $_REQUST 中可以包括 $_GET/$POST/$_COOKIE 数组,的信息.
快速入门:
这里就很好理解,看一个案例 :

<?php
       echo "<pre>";
       echo print_r($_REQUEST);
       echo "</pre>";
       //如何取出某个值
       //$_REQUEST既可以接收get  请求数据,也可以接收post请求、cookie..
       //所以这个变量,比较不可以信,不建议使用. $_GET $_POST
       echo $_REQUEST['aa'];
       //如果不确定get/post
       if($_SERVER['http_method']=="post"){
              $echo $_POST['名字'];
       }else if($_SERVER['http_method']=="get"){
              //用 _GET接收.
       }
?>

注意事项:
1. 不要经常使用$_REQUEST,
2. 如果不确定_GET/POST
你接收数据时候,可以这样
if($_SERVER[' REQUEST_METHOD’]=="POST"){
              $echo $_POST['名字'];
}else if($_SERVER[’ REQUEST_METHOD’]=="GET"){
              //用 _GET接收.
}

你可能感兴趣的:(PHP预定义超全局数组 $_POST 、$_REQUEST 讲解)