form表單demo:task.html
創(chuàng)新互聯(lián)是一家專業(yè)提供垣曲企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、HTML5、小程序制作等業(yè)務(wù)。10年已為垣曲眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
fieldset id="setFiled"
legend發(fā)布任務(wù)/legend
form action="registr.php" method="post" id="steForm"
label任務(wù)類型:/labelbr
input type="text" name="type"? id="taskType" placeholder="請(qǐng)選擇任務(wù)類型"/br
label酬nbsp;nbsp;金:/labelbr
input type="number" name="money" id="forMoney" min="1" max="1000"/label元/labelbr
label截止時(shí)間:/labelbr
input type="datetime" name="time" id="timeSubmit"/span data-year="" data-month="" data-date="" id="showDate"/spanbr
label詳細(xì)描述:/labelbr
textarea maxlength="512" name="textAray" id="msgArea"/textareabr
input type="submit" name="subMit" id="forSub" value="點(diǎn)擊發(fā)布" /
/form
擴(kuò)展資料
php接收POST數(shù)據(jù)的三種方式
1、$_POST 方式接受數(shù)據(jù)
$_POST 方式是由通過HTTP的POST方法傳遞過來的數(shù)據(jù)組成的數(shù)組,是一個(gè)自動(dòng)全局變量。
注:只能接收Content-Type:application/x-www-form-urlencode提交的數(shù)據(jù)。也就是只能接收表單過來的數(shù)據(jù)。
2、GLOBLES[‘HTTP_RAW_POST_DATA’]
如果訪問原始POST數(shù)據(jù)不是php能夠識(shí)別的文檔類型,比如:text/xml 或者soap等等,可以用$GLOBLES[‘HTTP_RAW_POST_DATA’]來接收,$HTTP_RAW_POST_DATA變量包含有原始POST數(shù)據(jù)。此變量?jī)H在碰到未識(shí)別的MIME數(shù)據(jù)時(shí)產(chǎn)生。
注:$HTTP_RAW_POST_DATA對(duì)于enctype=”multipart/form-data”表單數(shù)據(jù)不可用,也就是說使用$HTTP_RAW_POST_DATA無法接受網(wǎng)頁表單post過來的數(shù)據(jù)。
3、file_get_contents(“php://input”);
如果訪問原始POST數(shù)據(jù),更好的方法是使用file_get_content(“php://input”);對(duì)于未指定Content-Type的POST數(shù)據(jù),可以使用該方法讀取POST原始數(shù)據(jù),包括二進(jìn)制流也可以和$HTTP_RAW_POST_DATA比起來。它帶來的生存眼里更小,并且不需要任何特殊的php.ini設(shè)置。
注:php://input不能用于 enctype=”multipart/form-data”
例如:$postStr = file_get_contents("php://input"); //獲取POST數(shù)據(jù)
表單傳值有兩種方式分別為:
get (通過URL進(jìn)行傳值,這種方式并不安全);
post(封裝到一個(gè)post包中進(jìn)行傳遞,比get安全,一般用這個(gè))
下面我們用$_POST進(jìn)行傳值:
?php
include("include/common.inc");
$title="表單處理頁";
include("include/header.inc");
if($_POST['name'] == null || $_POST['name'] == "你的名字")
echo "請(qǐng)輸入您的姓名";
else
{
echo "$name,您好,歡迎您的光臨!";
}
?
通常情況下用戶使用瀏覽器網(wǎng)頁表單向服務(wù)器post提交數(shù)據(jù),我們使用PHP的$_POST接收用戶POST到服務(wù)器的數(shù)據(jù),并進(jìn)行適當(dāng)?shù)奶幚?。但有些情況下,如用戶使用客戶端軟件向服務(wù)端php程序發(fā)送post數(shù)據(jù),而不能用$_POST來識(shí)別,那又該如何處理呢?
我們介紹php接受post數(shù)據(jù)的三種方式:
1.$_POST方式接收數(shù)據(jù)
$_POST方式是通過 HTTP POST 方法傳遞的變量組成的數(shù)組,是自動(dòng)全局變量。如使用$_POST[‘name’]就可以接收到網(wǎng)頁表單以及網(wǎng)頁異步方式post過來的數(shù)據(jù),
即$_POST只能接收文檔類型為Content-Type: application/x-www-form-urlencoded提交的數(shù)據(jù),也就是表單POST過來的數(shù)據(jù)。
2.$GLOBALS[‘HTTP_RAW_POST_DATA’]方式接收數(shù)據(jù)
但$GLOBALS[‘HTTP_RAW_POST_DATA’]中是否保存POST過來的數(shù)據(jù)取決于centent-Type的設(shè)置,只有在PHP在無法識(shí)別的Content-Type的情況下,才會(huì)將POST過來的數(shù)據(jù)原樣地填入變量$GLOBALS[‘HTTP_RAW_POST_DATA’]中,像Content-Type=application/x-www-form-urlencoded時(shí),該變量是空的。
另外,它同樣無法讀取Content-Type為multipart/form-data的POST數(shù)據(jù),也需要設(shè)置php.ini中的always_populate_raw_post_data值為On,PHP才會(huì)總把POST數(shù)據(jù)填入變量$http_raw_post_data。
3.php://input方式接收數(shù)據(jù)
如果訪問原始 POST 數(shù)據(jù)的更好方法是 php://input。php://input 允許讀取 POST 的原始數(shù)據(jù)。和 $HTTP_RAW_POST_DATA 比起來,它給內(nèi)存帶來的壓力較小,并且不需要任何特殊的php.ini設(shè)置,php://input不能用于 enctype=”multipart/form-data”。對(duì)于未指定 Content-Type 的POST數(shù)據(jù),則可以使用file_get_contents(“php://input”)來獲取原始數(shù)據(jù)。事實(shí)上,用PHP接收POST的任何數(shù)據(jù)都可以使用本方法。而不用考慮Content-Type,包括二進(jìn)制文件流也可以。php://input讀取不到$_GET數(shù)據(jù)。是因?yàn)?
1、首先創(chuàng)建一個(gè)名稱為 formphp的html文件 。
2、然后創(chuàng)建一form表單設(shè)置表單的name和action地址。
3、接著添加兩個(gè)輸入框分別設(shè)置name,一個(gè)數(shù)用戶名,一個(gè)是性別輸入框。
4、然后加入一個(gè)submit類型的輸入框,再新建一個(gè)接受form表單數(shù)據(jù)的php文件act。
5、在act文件中加入接收提交數(shù)據(jù)的代碼,并分別打印出代碼。
6、最后在瀏覽器中打開文件,點(diǎn)擊button查看效果,就完成了。
方法1、最常見的方法是:$_POST['fieldname'];
說明:只能接收Content-Type:
application/x-www-form-urlencoded提交的數(shù)據(jù)
解釋:也就是表單POST過來的數(shù)據(jù)
方法2、file_get_contents("php://input");
說明:
允許讀取
POST
的
原始數(shù)據(jù)
。
和
$HTTP_RAW_POST_DATA
比起來,它給內(nèi)存帶來的壓力較小,并且不需要任何特殊的
php.ini
設(shè)置。
php://input
不能用于
enctype="multipart/form-data"。
解釋:
對(duì)于未指定
Content-Type
的POST數(shù)據(jù),則可以使用file_get_contents(“php://input”);來獲取原始數(shù)據(jù)。
事實(shí)上,用PHP接收POST的任何數(shù)據(jù)都可以使用本方法。而不用考慮Content-Type,包括
二進(jìn)制文件
流也可以。
所以用方法二是最保險(xiǎn)的方法
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
說明:
總是產(chǎn)生
$HTTP_RAW_POST_DATA
變量包含有原始的
POST
數(shù)據(jù)。
此變量?jī)H在碰到未識(shí)別
MIME
類型的數(shù)據(jù)時(shí)產(chǎn)生。
$HTTP_RAW_POST_DATA
對(duì)于
enctype="multipart/form-data"
表單數(shù)據(jù)不可用
如果post過來的數(shù)據(jù)不是PHP能夠識(shí)別的,可以用
$GLOBALS['HTTP_RAW_POST_DATA']來接收,
比如
text/xml
或者
soap
等等
解釋:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST過來的原始數(shù)據(jù)。
$_POST或
$_REQUEST
存放的是
PHP以key=value的形式格式化以后的數(shù)據(jù)。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST過來的數(shù)據(jù)取決于centent-Type的設(shè)置,即POST數(shù)據(jù)時(shí)
必須顯式示指明Content-Type:
application/x-www-form-urlencoded,POST的數(shù)據(jù)才會(huì)存放到
$GLOBALS['HTTP_RAW_POST_DATA']中