用PHP向服務(wù)器發(fā)送HTTP的POST請(qǐng)求,代碼如下:
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供潤(rùn)州網(wǎng)站建設(shè)、潤(rùn)州做網(wǎng)站、潤(rùn)州網(wǎng)站設(shè)計(jì)、潤(rùn)州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、潤(rùn)州企業(yè)網(wǎng)站模板建站服務(wù),10余年潤(rùn)州做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
?php
/**????
*?發(fā)送post請(qǐng)求????
*?@param?string?$url?請(qǐng)求地址????
*?@param?array?$post_data?post鍵值對(duì)數(shù)據(jù)????
*?@return?string????
*/????
function?send_post($url,?$post_data)?{????
$postdata?=?http_build_query($post_data);????
$options?=?array(????
'http'?=?array(????
'method'?=?'POST',????
'header'?=?'Content-type:application/x-www-form-urlencoded',????
'content'?=?$postdata,????
'timeout'?=?15?*?60?//?超時(shí)時(shí)間(單位:s)????
)????
);????
$context?=?stream_context_create($options);????
$result?=?file_get_contents($url,?false,?$context);?????????????
return?$result;????
}
使用的時(shí)候直接調(diào)用上面定義的send_post方法:
$post_data?=?array(
'username'?=?'username',
'password'?=?'password'
);
send_post('網(wǎng)址',?$post_data);
input?type="checkbox"?name="option[]"?value="1"?選項(xiàng)1
input?type="checkbox"?name="option[]"?value="2"?選項(xiàng)2
input?type="checkbox"?name="option[]"?value="3"?選項(xiàng)3
這些放在表單中一起提交,php服務(wù)端接收到的是一個(gè)數(shù)組,可以便利處理數(shù)據(jù)。
?php?
$option?=?$_POST['option'];
//option?就是提交上來(lái)的value值了,存在數(shù)據(jù)庫(kù),或者直接遍歷輸出html值
?
看閣下的問(wèn)題其實(shí)比較疑惑的,有點(diǎn)不清楚,碰到問(wèn)題自己試著調(diào)試一下,多試試就解決了,不懂再問(wèn)吧
總是產(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過(guò)來(lái)的數(shù)據(jù)不是PHP能夠識(shí)別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來(lái)接收,比如 text/xml 或者 soap 等等。
需要設(shè)置php.ini中的always_populate_raw_post_data值為On,PHP才會(huì)總把POST數(shù)據(jù)填入變量$http_raw_post_data。
適用大多數(shù)類型的Content-type, php://input 允許讀取 POST 的原始數(shù)據(jù)。
和 $HTTP_RAW_POST_DATA 比起來(lái),它給內(nèi)存帶來(lái)的壓力較小,并且不需要任何特殊的 php.ini 設(shè)置。
php://input 不能用于 enctype="multipart/form-data"。
通過(guò) HTTP POST 方法傳遞的變量組成的數(shù)組。是自動(dòng)全局變量。
原文地址
你在文件中添加phpinfo();語(yǔ)句,這個(gè)語(yǔ)句顯示所有的變量值,你仔細(xì)閱讀輸出內(nèi)容,會(huì)有啟發(fā)的。
POST提交的所有數(shù)據(jù)在$_POST數(shù)組里面。
form表單demo:task.html
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 方式是由通過(guò)HTTP的POST方法傳遞過(guò)來(lái)的數(shù)據(jù)組成的數(shù)組,是一個(gè)自動(dòng)全局變量。
注:只能接收Content-Type:application/x-www-form-urlencode提交的數(shù)據(jù)。也就是只能接收表單過(guò)來(lái)的數(shù)據(jù)。
2、GLOBLES[‘HTTP_RAW_POST_DATA’]
如果訪問(wèn)原始POST數(shù)據(jù)不是php能夠識(shí)別的文檔類型,比如:text/xml 或者soap等等,可以用$GLOBLES[‘HTTP_RAW_POST_DATA’]來(lái)接收,$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ù)不可用,也就是說(shuō)使用$HTTP_RAW_POST_DATA無(wú)法接受網(wǎng)頁(yè)表單post過(guò)來(lái)的數(shù)據(jù)。
3、file_get_contents(“php://input”);
如果訪問(wèn)原始POST數(shù)據(jù),更好的方法是使用file_get_content(“php://input”);對(duì)于未指定Content-Type的POST數(shù)據(jù),可以使用該方法讀取POST原始數(shù)據(jù),包括二進(jìn)制流也可以和$HTTP_RAW_POST_DATA比起來(lái)。它帶來(lái)的生存眼里更小,并且不需要任何特殊的php.ini設(shè)置。
注:php://input不能用于 enctype=”multipart/form-data”
例如:$postStr = file_get_contents("php://input"); //獲取POST數(shù)據(jù)