PHP POST 變數儘管存在於php://input
簡介:
簡介:簡介:
簡介:
簡介:簡介:
<code class="php">// Get real POST variables function getRealPOST() { $pairs = explode("&", 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中文網其他相關文章!