首頁 >後端開發 >php教程 >儘管 PHP POST 變數存在於 php://input 中,但為什麼 $_POST 中缺少 PHP POST 變數?

儘管 PHP POST 變數存在於 php://input 中,但為什麼 $_POST 中缺少 PHP POST 變數?

Linda Hamilton
Linda Hamilton原創
2024-10-30 06:44:02389瀏覽

Why are PHP POST variables missing from $_POST despite being present in php://input?

PHP POST 變數儘管存在於php://input

簡介:

簡介:

簡介:

簡介:

簡介:

簡介:

<code class="php">// Get real POST variables
function getRealPOST() {
    $pairs = explode("&amp;", file_get_contents("php://input"));
    $vars = array();
    foreach ($pairs as $pair) {
        $nv = explode("=", $pair);
        $name = urldecode($nv[0]);
        $value = urldecode($nv[1]);
        $vars[$name] = $value;
    }
    return $vars;
}</code>

簡介:

當透過POST 請求在PHP 中處理表單提交時,可能會遇到奇怪的行為,即$_POST 超全局中缺少某些值,即使它們透過php://input 出現在原始請求中。 問題描述:提交帶有巢狀欄位的大型 HTML 表單時會出現此問題。儘管表單資料已傳送至伺服器,但某些值可能無法填入 $_POST 中。檢查 php://input 發現這些值確實包含在請求中,但似乎在 $_POST 中被截斷。 原因:此行為歸因於PHP 對包含點、空格、方括號等字元的 POST 欄位的修改。這些字元之前已由已棄用的 register_globals 配置處理。 解決方案:要解決此問題,您可以採用以下解決方法:此函數解析php://input中的原始POST 請求,並使用原始欄位名稱重建POST 變量,考慮到PHP 進行的字元替換。

以上是儘管 PHP POST 變數存在於 php://input 中,但為什麼 $_POST 中缺少 PHP POST 變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn