ホームページ  >  記事  >  バックエンド開発  >  コードが有効であるにもかかわらず、POST リクエストが PHP の入力をキャプチャしないのはなぜですか?

コードが有効であるにもかかわらず、POST リクエストが PHP の入力をキャプチャしないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-20 16:10:29351ブラウズ

Why isn't POST Request Capturing Input in PHP despite Valid Code?

PHP での POST リクエストの誤動作への対処

提示されたコード スニペット内:

<?php echo $_POST['ss'];?><br><form action="<?php echo $_SERVER['PHP_SELF'];?>" Method="post"><br><input name="ss" type="text" /><br><input type="submit" name="submit"><br></ form><br>

その目的は、テキスト ボックスからの入力をキャプチャし、送信ボタンがクリックされたときに表示することです。ただし、出力は空白のままです。 Method="get" はシームレスに機能しますが、method="post" では問題が発生します。

POST リクエストのトラブルシューティング

この問題を解決するには、次の手順を検討してください。 :

  1. アクション属性を確認します:
    ページを更新している場合は、アクション属性を空の文字列に設定します。例:

    <code class="php">action=''</code>

    代わりに:

    <code class="php">action="<?php echo $_SERVER['PHP_SELF'];?>"</code>
  2. $_POST 配列を検査します:
    フォーム送信後に var_dump を使用して $_POST 配列の内容を確認します。
  3. POST データ処理の構成:
    POST データを適切に処理するには、PHP ファイルの先頭に次の行を追加します:

    <code class="php">if(empty($_SERVER['CONTENT_TYPE']))
    { 
      $_SERVER['CONTENT_TYPE'] = "application/x-www-form-urlencoded"; 
    }</code>
  4. php.ini 設定を確認します:
    php.ini ファイルに次の設定が存在することを確認します:

    <code class="ini">post_max_size = 8M
    variables_order = "EGPCS"</code>
  5. メモリ割り当てを検討する:
    メモリ割り当てには常に注意してください。 2048MB を超える割り当てを行うと、システム仕様によっては問題が発生する可能性があります。
  6. Apache を再起動します (必要な場合):
    php.ini を変更し、PHP が Apache として実行される場合モジュールの場合、

    <code class="bash">sudo /etc/init.d/httpd restart</code>
のようなコマンドを使用して Apache を再起動します。

以上がコードが有効であるにもかかわらず、POST リクエストが PHP の入力をキャプチャしないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。