當前位置:首頁 » 編程語言 » phppost流

phppost流

發布時間: 2024-06-14 18:31:22

php 怎麼POST獲取數據

方法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']中

㈡ php如何接收別的伺服器post過來的數據 - 技術問答

通常情況下用戶使用瀏覽器網頁表單向伺服器post提交數據,我們使用PHP的$_POST接收用戶POST到伺服器的數據,並進行適當的處理。但有些情況下,如用戶使用客戶端軟體向服務端php程序發送post數據,而不能用$_POST來識別,那又該如何處理呢?
我們介紹php接受post數據的三種方式:
1.$_POST方式接收數據
$_POST方式是通過 HTTP POST 方法傳遞的變數組成的數組,是自動全局變數。如使用$_POST[『name』]就可以接收到網頁表單以及網頁非同步方式post過來的數據,
即$_POST只能接收文檔類型為Content-Type: application/x-www-form-urlencoded提交的數據,也就是表單POST過來的數據。
2.$GLOBALS[『HTTP_RAW_POST_DATA』]方式接收數據
但$GLOBALS[『HTTP_RAW_POST_DATA』]中是否保存POST過來的數據取決於centent-Type的設置,只有在PHP在無法識別的Content-Type的情況下,才會將POST過來的數據原樣地填入變數$GLOBALS[『HTTP_RAW_POST_DATA』]中,像Content-Type=application/x-www-form-urlencoded時,該變數是空的。
另外,它同樣無法讀取Content-Type為multipart/form-data的POST數據,也需要設置php.ini中的always_populate_raw_post_data值為On,PHP才會總把POST數據填入變數$http_raw_post_data。
3.php://input方式接收數據
如果訪問原始 POST 數據的更好方法是 php://input。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,包括二進制文件流也可以。php://input讀取不到$_GET數據。是因為$

㈢ PHP的POST怎麼用

<?php
$name=$_POST['name'];
$age=$_POST['age'];
echo'welcome'.$name.'youare'.$age.'yearsold';

將php頁面的全部內容刪掉改成上面那段代碼就可以了

㈣ 請詳細解說下php關於post傳值和get傳值的內容,區別,安全性,大小等。

Post傳輸數據時,不需要在URL中顯示出來,而Get方法要在URL中顯示。Post傳輸的數據量大,可以達到2M,而Get方法由於受到URL長度的限制,只能傳遞大約1024位元組。一般來說,我們用POST傳值作為首選,這樣做較為安全。

PHP中$_REQUEST、$_POST和$_GET的區別

三種方式都是用來接收表單數據

$_REQUEST具用$_POST和$_GET的功能,但是$_REQUEST比較慢。通過POST和GET方法提交的所有數據都可以通過$_REQUEST數組獲得。

$_POST與$_GET的區別和特點

1. GET是從伺服器上獲取數據,POST是向伺服器傳送數據。

2. GET是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。POST是通過HTTP POST機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。

3. 對於GET方式,伺服器端用Request.QueryString獲取變數的值,對於POST方式,伺服器端用Request.Form獲取提交的數據。

4. GET傳送的數據量較小,不能大於2KB。POST傳送的數據量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

5. GET安全性非常低,POST安全性較高。

㈤ php發送get,post請求的幾種方法

POST方法比較適合用於發送一個保密的(比如信用卡號)或者比較大量的數據到伺服器,但速度慢。而Get方法會將所要傳輸的數據附在網址後面,然後一起送達伺服器,因此傳送的數據量就會受到限制且不安全,但是執行效率卻比 Post方法好。具體來說如下:
1、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。
2、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。
3、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。
4、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。
5、Get是Form的默認方法。

㈥ 怎麼查看php發出的post請求

用PHP向伺服器發送HTTP的POST請求,代碼如下:
<?php
/**
* 發送post請求
* @param string $url 請求地址
* @param array $post_data post鍵值對數據
* @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 // 超時時間(單位:s)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
return $result;
}
使用的時候直接調用上面定義的send_post方法:
$post_data = array(
'username' => 'username',
'password' => 'password'
);
send_post('網址', $post_data);

㈦ PHP中怎樣發送post請求並獲取網頁

$post='POST數據';
//初始化
$curl=curl_init('URL');
$header=array();
$header[]='User-Agent:Mozilla/5.0(WindowsNT6.1)AppleWebKit/537.36(KHTML,likeGecko)Chrome/42.0.2311.90Safari/537.36';
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
//不輸出header頭信息
curl_setopt($curl,CURLOPT_HEADER,0);
//保存到字元串而不是輸出
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
//post數據
curl_setopt($curl,CURLOPT_POST,1);
//請求數據
curl_setopt($curl,CURLOPT_POSTFIELDS,$post);
//是否抓取跳轉後的頁面
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
$response=curl_exec($curl);
curl_close($curl);
echo$response;

熱點內容
c語言課程總結 發布:2024-07-25 15:06:39 瀏覽:896
安卓廣告怎麼賺錢 發布:2024-07-25 15:02:24 瀏覽:894
怎麼看電腦基本配置 發布:2024-07-25 14:57:54 瀏覽:953
nettyandroid 發布:2024-07-25 14:57:52 瀏覽:504
php圖片二進制字元串 發布:2024-07-25 14:55:58 瀏覽:485
安卓手機怎麼找到刪掉的圖片 發布:2024-07-25 14:27:44 瀏覽:476
路由密碼是什麼意思 發布:2024-07-25 14:24:19 瀏覽:300
安卓手機後台鍵是哪個鍵 發布:2024-07-25 14:23:35 瀏覽:165
資料庫原理視頻 發布:2024-07-25 14:15:18 瀏覽:608
安卓通話攔截哪裡設置 發布:2024-07-25 13:50:21 瀏覽:920