導航:首頁 > 編程語言 > phppost返回數據

phppost返回數據

發布時間:2025-06-30 23:23:22

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數據。是因為$

❷ 怎麼獲取form表單將要提交的數據

在PHP中,可以通過POST和GET兩種方法獲取表單提交的數據。這兩種方法都會將數據以數組形式返回,因此你需要通過鍵值對來獲取具體的值。例如,在一個名為index.php的頁面中,你可以使用POST方法來提交表單數據,代碼如下:

php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
// 其他數據處理
}

同樣地,你也可以使用GET方法來實現這一功能,代碼如下:

php
if ($_SERVER["REQUEST_METHOD"] == "GET") {
$name = $_GET['name'];
$email = $_GET['email'];
// 其他數據處理
}

在實際應用中,通常推薦使用POST方法來提交表單數據。相比GET方法,POST方法有以下幾個優點:

1. 可以提交大量數據,而GET方法的數據長度有限。

2. POST方法更安全,因為數據不會直接出現在URL中。

3. 對於表單中的文件上傳,只能使用POST方法。

無論是使用POST還是GET方法,獲取到的數據都需要進一步處理,例如驗證和過濾,以確保數據的安全性和正確性。在處理完數據後,你還可以根據需要將數據用於頁面顯示、資料庫操作等。

值得注意的是,在處理POST或GET提交的數據時,必須確保數據的合法性。例如,檢查輸入是否為空、是否符合預期的數據類型等,以防止潛在的安全風險。

總之,通過POST或GET方法獲取表單提交的數據是PHP中常見的操作。正確地處理這些數據對於構建安全、高效的Web應用程序至關重要。

❸ 在PHP中怎麼接收post過來的JSON數據

在PHP中接收POST過來的JSON數據,通常有兩種方式。一種是直接使用file_get_contents函數獲取原始數據,然後利用json_decode將JSON字元串轉換為PHP數組或對象。例如:file_get_contents('php://input');獲取數據後,使用json_decode(file_get_contents('php://input'), true)進行解碼。另一種方式是通過$_POST超全局變數接收,這種方式需要在發送請求時設置Content-Type為application/json。例如:$_POST['data'],但這種方式並不推薦,因為$_POST通常用於接收表單數據。

下面是一個完整的示例,展示如何在PHP中處理POST過來的JSON數據:

首先,假設前端使用JavaScript發送JSON數據,代碼如下:

JavaScript代碼示例:

function sendData() {
var data = {'zhangsan':'lisi', 'age':18};
var xhr = new XMLHttpRequest();
xhr.open('POST', '/path/to/php/script', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send(JSON.stringify(data));
}

然後在PHP中接收並處理這些數據:

PHP代碼示例:

<?php
$jsonData = file_get_contents('php://input');
$data = json_decode($jsonData, true);
echo "接收到的數據:";
print_r($data);
?>

上面的PHP代碼首先使用file_get_contents('php://input')獲取原始數據,然後通過json_decode將其轉換為PHP數組。接著,使用print_r輸出數據內容。

這種方式不僅適用於POST請求,也適用於其他HTTP方法。通過這種方式,PHP能夠靈活地處理不同來源和格式的數據,增強應用的通用性和可維護性。

❹ PHP使用POST傳遞json數據的接收與處理問題

前端傳給伺服器的只是json 格式的字元串,使用json_decode,
mixed json_decode ( string $json [, bool $assoc ] )

var_mp(json_decode($json));
var_mp(json_decode($json, true));
如果不帶參數,則返回為對象
帶上true時,返回數組

foreach($ARR as $k=>$v){
echo 'key='.$k.';value='.$v;
}
單獨處理每個key 和對應的value就好

❺ 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']中

閱讀全文

與phppost返回數據相關的資料

熱點內容
施工員與程序員哪個好 瀏覽:207
vc與word編程 瀏覽:950
androidmenu文字顏色 瀏覽:982
安卓手機玩游戲怎麼會閃退 瀏覽:553
聲控解壓球要晾幾天才能晾乾呢 瀏覽:562
安卓手機拍照如何自動調整 瀏覽:627
程序員必知 瀏覽:22
cs16bot命令 瀏覽:869
馬六壓縮機不工作 瀏覽:407
c語言使用命令 瀏覽:781
初遇是個什麼app 瀏覽:744
編譯依賴包下載 瀏覽:879
excel表格數據加密怎麼解密 瀏覽:475
外國安卓手機圖片加密 瀏覽:724
帝國時代2電腦解壓包 瀏覽:614
安卓機在國外怎麼用 瀏覽:993
在微信上如何傳文件夾 瀏覽:558
bios編譯用什麼語言 瀏覽:779
入手單片機 瀏覽:114
上傳加密文件需要多久時間 瀏覽:202