当前位置:首页 > PHP教程 > php应用 > 列表

php $_POST获取html表单form数据教程

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-29 14:17:29 浏览: 评论:0 

$_POST 变量用于收集来自 method=\"post\" 的表单中的值,从带有 POST 方法的表单发送的信息,对任何人都是不可见的,不会显示在浏览器的地址栏,并且对发送信息的量也没有限制.

先来看个最简单的实例,代码如下:

  1. <form action ="post.php" method ="post"> 
  2. Name: <input type="text" name="username" /> 
  3. <input type ="submit" value="ok" /> 
  4. </form> 

如我输入你好,post.php文件代码如下:

You are <?php echo $_POST["username"]?>.

输出结果就是:You are 你好

那么post如何获取像单选按钮呢,实例代码如下:

  1. <form action = "radiopost.php" method = "post"> 
  2. <input type="radio" name="abcde" value = "Apple">Apple</input><br /> 
  3. <input type="radio" name="abcde" value = "Orange">Orange</input><br /> 
  4. <input type="radio" name="abcde" value = "Mango">Mango</input><br /> 
  5. <input type="submit" value="ok"> 
  6. </form> 

radiopost.php文件,代码如下:

<?php echo $_POST["abcde"]?>

这样你选择那个就全出输那个的值,对于checkbox会有所不同,这个大家可以注意一下,代码如下:

  1. <form action = "checkboxpost.php" method = "post"> 
  2. <input type="checkbox" name="abcde[ ]" value = "Apple">Apple</input><br /> 
  3. <input type="checkbox" name="abcde[ ]" value = "Orange">Orange</input><br /> 
  4. <input type="checkbox" name="abcde[ ]" value = "Mango">Mango</input><br /> 
  5. <input type="submit" value="ok"> 
  6. </form> 

checkboxpost.php文件,代码如下:print_r($_POST['abcde']);

输出的是个数组形式了.

注:通过 HTTP POST 发送的变量不会显示在 URL 中,变量没有长度限制.

$_POST 与 php://input可以取到值,$HTTP_RAW_POST_DATA 为空

$_POST 以关联数组方式组织提交的数据,并对此进行编码处理,如urldecode,甚至编码转换.

php://input 可通过输入流以文件读取方式取得未经处理的POST原始数据.

php://input 允许读取 POST 的原始数据,和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置,php://input 不能用于 enctype="multipart/form-data".

这里拓展一下post模拟方法,代码如下:

  1. <?PHP             
  2.     $flag = 0;         
  3.     //要post的数据          
  4. $argv = array(         
  5.      'var1'=>'abc',          
  6.      'var2'=>'你好吗');          
  7. //构造要post的字符串          
  8. foreach ($argv as $key=>$value) {          
  9.      if ($flag!=0) {         
  10.              $params .= "&";          
  11.              $flag = 1;          
  12.      }          
  13.      $params.= $key."="$params.= urlencode($value);          
  14.      $flag = 1;          
  15.      }          
  16.      $length = strlen($params);         
  17.          //创建socket连接          
  18.      $fp = fsockopen("127.0.0.1",80,$errno,$errstr,10) or exit($errstr."--->".$errno);          
  19.      //构造post请求的头          
  20.      $header = "POST /mobile/try.php HTTP/1.1";          
  21.      $header .= "Host:127.0.0.1";          
  22.      $header .= "Referer:/mobile/sendpost.php";          
  23.      $header .= "Content-Type: application/x-www-form-urlencoded";          
  24.      $header .= "Content-Length: ".$length."";          
  25.      $header .= "Connection: Close";         
  26.      //添加post的字符串          
  27.      $header .= $params."";          
  28.      //发送post的数据          
  29.      fputs($fp,$header);          
  30.      $inheader = 1;          
  31.      while (!feof($fp)) {         
  32.              $line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据              //开源代码phpfensi.com 
  33.              if ($inheader && ($line == "n" || $line == "")) {         
  34.                  $inheader = 0;          
  35.              }          
  36.              if ($inheader == 0) {          
  37.                  echo $line;          
  38.              }          
  39.      }          
  40. fclose($fp);          
  41. ?>

Tags: $_POST获取表单 form表单数据

分享到: