ホームページ >バックエンド開発 >PHPの問題 >PHPがポストパラメータを受信できない場合はどうすればよいですか?

PHPがポストパラメータを受信できない場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2020-08-24 09:40:384234ブラウズ

php がポストパラメータを受け取れない問題の解決策: 1. ヘッダー情報「content-type」を確認します; 2. [file_get_contents("php://input")] メソッドを使用して入力を取得しますストリーム。

PHPがポストパラメータを受信できない場合はどうすればよいですか?

推奨: 「PHP ビデオ チュートリアル

PHP インターフェイスのポスト データを受信できない理由パラメータ

1. ヘッダー情報の content-type が「content-type:application/x-www-form-urlencoded」であることを確認します この送信はフォームと PHP でデータを送信するものです$_POST を使用してそれを受け入れます。

2. ヘッダー情報の content-type が「content-type:application/json」の場合、json モードでデータを送信するため、PHP は file_get_contents("php:// input") を使用して取得します。入力ストリーム メソッドは

3 を受け入れます。PHP を初めて使用する場合は、echo $_POST["variable"] と var_dump を使用してポスト データを取得することはできません。 ($_POST)。

解決策は次のとおりです:

1. php.ini 設定ファイルを見つけて、enable_post_data_reading 変数を探し、それが開いていることを確認して、ステートメントの前のセミコロン (セミコロンのあるステートメントは Comment ステートメントです):

2. php を実行しているブラウザのアドレスを観察すると、PhpStorm でブラウザを開くために使用されるサービス ポート番号が 63342 であることがわかります (URL は次の形式です) of localhost:63342/)

したがって、問題の理由は次のとおりです。PhpStorm はデフォルトで独自の内部サーバーを使用しますが、xampp では Apache サーバーを使用しません。組み込みサーバー phpStorm はポート 63342 を使用しており、サーバー内で問題が発生して POST メソッドが異常になり、Apache サーバーの作業ディレクトリにプロジェクトを配置し、アドレス バーに localhost と入力すると、現時点では Apache サーバーが使用されており、デフォルトのポート番号は 80 であり、Apache サーバーはプログラムを正常に実行できます。

PhpStorm の内部サーバーに問題があるため、解決策は内部サーバーを使用しない方法を見つけることです。 2 つの方法があります:

1. Apache サーバーの作業ディレクトリにプロジェクトを作成し、実行するたびにブラウザのアドレス バーにローカルホストのアドレスを直接入力します。まだ使いたい PhpStorm でブラウザ デバッガを開きます。設定を変更することで実現できます。

(1) まず、Apache サーバー ディレクトリをローカル ディレクトリにマッピングします。

方法は次のとおりです。 :

1. /xampp/apache/conf/httpd.conf ファイルを見つけます

2. 92aac8a5cc4b2dcfdd313b09f4c3c819 06509456e3f48e01a40badedd77d458e コード ブロックを見つけます

3次のコードを追加します:

# /phpworkspace/ : 他のディスク上のディレクトリのエイリアスは、マッピングするディレクトリのエイリアスです

# "E:/phpworkspace/" :これはディレクトリです。 絶対パス

##Alias /phpworkspace/ "E:/phpworkspace/"

# これで、//localhost を介して E ドライブの下の phpworkspace フォルダー内のプロジェクトにアクセスできるようになります。 /phpworkspace/

4.

次のように、1d2836e31d6e6e17d304ed49097f9974 と同じレベルにコードを追加します:

<Directory "E:/phpworkspace/">
    AllowOverride All
    Options Indexes FollowSymLinks Includes ExecCGI
    Require all granted
</Directory>

Completed. 次に、Apache を再起動して、次のサイトにアクセスします。 : http://localhost /phpworkspace/ 以上です

(2) 次に、PhpStorm で、[ファイル] -> [設定] -> [ビルド、実行、デプロイ] -> [デプロイ] を見つけます。最初は空です。緑色のプラス記号。ローカル サーバーを追加し、localhost という名前を付け、[タイプ] で [インプレース] を選択します。

作成が完了すると、右側の [接続] タブのデフォルト設定により、サーバーが Apache サーバーとして構成されます。ポート 80、つまり http://localhost の下で、ローカル プロジェクトにマップした作業ディレクトリに変更します。

Mappings タグの下のローカル パスを、ローカル プロジェクトのディレクトリに設定します。ローカルプロジェクト:

このとき、PhpStormから起動します ブラウザをクリックすると、アクセスしたURLにポート63342というフィールドがなくなり、代わりにローカルのApacheサーバーが使用され、対応するフォームデータが正常に受信できるようになります

以上がPHPがポストパラメータを受信できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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