$_POST 变量用于收集来自 method=\"post\" 的表单中的值,从带有 POST 方法的表单发送的信息,对任何人都是不可见的,不会显示在浏览器的地址栏,并且对发送信息的量也没有限制.
先来看个最简单的实例,代码如下:
Name:
如我输入你好,post.php文件代码如下:
You are <?php echo $_POST["username"]?>.
输出结果就是:You are 你好
那么post如何获取像单选按钮呢,实例代码如下:
Apple
Orange
Mango
radiopost.php文件,代码如下:
这样你选择那个就全出输那个的值,对于checkbox会有所不同,这个大家可以注意一下,代码如下:
Apple
Orange
Mango
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模拟方法,代码如下:
$flag= 0;
//要post的数据
$argv=array(
'var1'=>'abc',
'var2'=>'你好吗');
//构造要post的字符串
foreach($argvas$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)orexit($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);//去除请求包的头只显示页面的返回数据 //开源代码vcphp.com
if($inheader&& ($line=="n"||$line=="")) {
$inheader= 0;
}
if($inheader== 0) {
echo$line;
}
}
fclose($fp);
?>
(责任编辑:最模板)
本文详细介绍了PHP中$_POST变量的应用,包括如何使用POST方法发送表单数据,并提供了具体实例,如处理单选按钮和复选框等。此外还探讨了如何通过PHP模拟POST请求。
2077

被折叠的 条评论
为什么被折叠?



