首页 > php框架 > php $_POST获取html表单form数据教程

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

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

先来看个最简单的实例

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

如我输入 你好,

post.php文件代码如下

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

输出结果就是

You are 你好

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

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

radiopost.php文件

<?php echo $_POST["abcde"] ?>
这样你选择那个就全出输那个的值,对于checkbox会有所不同,这个大家可以注意一下
<form action = "checkboxpost.php" method = "post">
<input type="checkbox" name="abcde[ ]" value = "Apple">Apple</input><br />
<input type="checkbox" name="abcde[ ]" value = "Orange">Orange</input><br />
<input type="checkbox" name="abcde[ ]" value = "Mango">Mango</input><br />
<input type="submit" value="ok">
</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模拟方法

<?php
$flag = 0;
//要post的数据
$argv = array(
    'var1' => 'abc',
    'var2' => '你好吗'
);
//构造要post的字符串
foreach ($argv as $key => $value) {
    if ($flag != 0) {
        $params.= "&";
        $flag = 1;
    }
    $params.= $key . "=";
    $params.= urlencode($value);
    $flag = 1;
}
$length = strlen($params);
//创建socket连接
$fp = fsockopen("127.0.0.1", 80, $errno, $errstr, 10) or exit($errstr . "--->" . $errno);
//构造post请求的头
$header = "POST /mobile/try.php HTTP/1.1";
$header.= "Host:127.0.0.1";
$header.= "Referer:/mobile/sendpost.php";
$header.= "Content-Type: application/x-www-form-urlencoded";
$header.= "Content-Length: " . $length . "";
$header.= "Connection: Close";
//添加post的字符串
$header.= $params . "";
//发送post的数据
fputs($fp, $header);
$inheader = 1;
while (!feof($fp)) {
    $line = fgets($fp, 1024); //去除请求包的头只显示页面的返回数据
    if ($inheader && ($line == "n" || $line == "")) {
        $inheader = 0;
    }
    if ($inheader == 0) {
        echo $line;
    }
}
fclose($fp);
?>


本文地址:http://www.phprm.com/frame/php1005280.html

转载随意,但请附上文章地址:-)

标签:none

发表留言