问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php 怎么POST获取数据?

发布网友 发布时间:2022-04-05 23:33

我来回答

3个回答

懂视网 时间:2022-04-06 03:54

php中post方法的主要用途就是“传递”数据,它将数据放在所有请求标题的后面上传,使用代码语句如“<form action=”post.php” method=”post”>...”。

推荐:《PHP视频教程》

$_POST数组

GET方法的本意就是下载(与其对应的是上传方法PUT),因此并不是专门用于传递数据的,它将请求数据全部经过URL编码后缀在请求资源的后面,这样一来,当数据很多时URL就会变得很长——但这并不是问题的所在,问题所在是一些WEB浏览器或服务器程序会限制这行字符串的长度。这时,就需要用到 POST方法了。

顾名思义,POST方法的主要用途就是“传递”数据,它将数据放在所有请求标题的后面上传,这样一来,无论有多少数据上传都不成问题了(这样请求数据的大小之取决于WEB服务允许的尺寸了)。通常来说,对于表单数据如无特别需要都使用POST方法来上传,这样就无须去关心具体上传数据的尺寸了。

POST方法的请求数据被封装到了$_POST数组中,其使用方法与$_GET数组一样。将上面的表单添加一个method属性,就变成了这样:

<!– post.php文件 –>
<?php
if($_POST['post']) {
foreach($_POST as $index = > $value) echo “$_POST[$index] = $value”, “<BR>”;
}
?>
<form action=”post.php” method=”post”>
<label for=”id”>账号:</label><input type=”text” name=”id”>
<label for=”password”>密码:</label><input type=”text” name=”password”>
<input type=”submit” name=”post” value=”提交”>
</form>

另一个有趣的设定是,GET方法和POST方法并不矛盾,在POST方法中同样可以传递GET变量,将上面的post.php文件稍微改动一下,就成了这样:

<!– post.php文件 –>
<?php
if($_POST['post']) {
foreach($_POST as $index = > $value) echo “$_POST[$index] = $value”, “<BR>”;
foreach($_GET as $index = > $value) echo “$_GET[$index] = $value”, “<BR>”;
}
?>
<form action=”post.php?act=login” method=”post”>
<label for=”id”>帐号:</label><input type=”text” name=”id”>
<label for=”password”>密码:</label><input type=”text” name=”password”>
<input type=”submit” name=”post” value=”提交”>
</form>

该程序同时处理了GET方法(act 参数)和POST方法(id 和 password 参数)的请求数据,GET方法的请求变量后缀在了表单action属性值的后面,这样只有一点问题,就是GET方法的请求变量不能由用户来输入。通常,固定的数据使用GET方法,由用户输入的数据使用POST方法来发送,两种方法区分开了不同逻辑的数据。不过读者在构建这种表单的时候,一定要注意两种方法不要有相同的变量名,否则将出现不可预料的后果。最后,需要注意的是,当使用GET方法发送数据时,则 <form>标签 action 属性值中不能包含查询字符串(即使包含也不会生效),所以,下面的表单中,act 参数将不能发送:

<form action=”post.php?act=login” method=”get”>
<label for=”id”>账号:</label><input type=”text” name=”id”>
<label for=”password”>密码:</label><input type=”text” name=”password”>
<input type=”submit” name=”post” value=”提交”>
</form>

应该改成下面的形式:

<form action=”post.php” method=”get”>
<label for=”id”>账号:</label><input type=”text” name=”id”>
<label for=”password”>密码:</label><input type=”text” name=”password”>
<input type=”submit” name=”post” value=”提交”>
<input type=”hidden” name=”act” value=”login”>
</form>

热心网友 时间:2022-04-06 01:02

方法1、最常见的方法是:$_post['fieldname'];
说明:只能接收content-type:
application/x-www-form-urlencoded提交的数据
解释:也就是表单post过来的数据
方法2、file_get_contents("php://input");
说明:
允许读取
post
的原始数据。

$http_raw_post_data
比起来,它给内存带来的压力较小,并且不需要任何特殊的
php.ini
设置。
php://input
不能用于
enctype="multipart/form-data"。
解释:
对于未指定
content-type
的post数据,则可以使用file_get_contents(“php://input”);来获取原始数据。
事实上,用php接收post的任何数据都可以使用本方法。而不用考虑content-type,包括二进制文件流也可以。
所以用方法二是最保险的方法

热心网友 时间:2022-04-06 02:20

方法1、最常见的方法是:$_POST['fieldname'];
说明:只能接收Content-Type:
application/x-www-form-urlencoded提交的数据
解释:也就是表单POST过来的数据
方法2、file_get_contents("php://input");
说明:
允许读取
POST

原始数据


$HTTP_RAW_POST_DATA
比起来,它给内存带来的压力较小,并且不需要任何特殊的
php.ini
设置。
php://input
不能用于
enctype="multipart/form-data"。
解释:
对于未指定
Content-Type
的POST数据,则可以使用file_get_contents(“php://input”);来获取原始数据。
事实上,用PHP接收POST的任何数据都可以使用本方法。而不用考虑Content-Type,包括
二进制文件
流也可以。
所以用方法二是最保险的方法
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
说明:
总是产生
$HTTP_RAW_POST_DATA
变量包含有原始的
POST
数据。
此变量仅在碰到未识别
MIME
类型的数据时产生。
$HTTP_RAW_POST_DATA
对于
enctype="multipart/form-data"
表单数据不可用
如果post过来的数据不是PHP能够识别的,可以用
$GLOBALS['HTTP_RAW_POST_DATA']来接收,
比如
text/xml
或者
soap
等等
解释:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。
$_POST或
$_REQUEST
存放的是
PHP以key=>value的形式格式化以后的数据。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,即POST数据时
必须显式示指明Content-Type:
application/x-www-form-urlencoded,POST的数据才会存放到
$GLOBALS['HTTP_RAW_POST_DATA']中
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
潍坊哪里有卖有影像的游戏王决斗盘 游戏王决斗盘哪卖? 中国有卖〔游戏王〕动画片中的战斗盘的吗?如果有,安徽哪有卖的? ___有两个端点,___只有一个端点,___没有端点 线段线段有两个端点,射线射线只有一个端点,直线直线没有端点._百度知 ... 监理费,设计费,勘探费,咨询费可否计入固定资产单 工程设计计入什么科目 求爱情语录 像送心爱的人回家 哪都顺路这种超经典超浪漫超温馨的_百度... 内眼角起疱是怎么回事 新绝代双骄之鱼戏江湖 怎么玩不了? 求解 PHP的POST怎么用? win7下python 64位版本的idle打不开 江湖告急 求救 python3.8.9无法打开IDLE怎么办? python 2.7 IDLE打不开 win10的python下载后idle不能用怎么办,所有文件打不开 python中的IDLE打不开,请问这是什么节奏? Python的idle打不开,修复了没用,卸了重装也没用怎么办? IDLE打不开,连接失败? 您好,请教一下您python中IDLE打不开,提示IDLE&#39;s subprocess didn&#39;t make connection的解决方案 php中count()函数的作用? python count() len() Python 请定义一个函数count(s, c),它检查字符串s中单个字符c出现的次数? 请教python高手 count函数? Python中s.count(“s”)和s.count(s)有什么区别? python里count怎么用 python中的count函数问题? python count的函数用法是什么? 关于PHP返回验证码图片的问题 为什么我的php验证码,在以图片形式导入到其他页面显示不了图片,而在代码部分还能显示到? 做了一个注册网站,php写了验证码,但打开的时候验证码图片打不开。。 PHP菜鸟求助(如图) $_POST的正确用法? PHP中的POST,求大虾详细解释 $_post[ ] 在PHP中的运用 php中有关post的问题 如何在自己的php脚本中设置post php获取post参数的几种方式 PHP中$_GET和$_POST作用 PHP里模拟Post提交是什么意思? php中post与get的区别,能说详细些吗 PHP中?传值与POST传值 thinkphp怎么去掉index.php thinkphp如何去掉index.php thinkphp中怎么去掉index.php thinkphp url怎么去掉index.php thinkphp中怎么把url中的index.php去掉 thinkphp iis 如何去掉index.php thinkphp3.0 url 如何去掉index.php thinkphp 5 如何去掉 index.php thinkphp如何去掉地址栏index.php thinkphp站点下怎么隐藏前台和后台的入口文件index.php,admin.php