0
0

PHPのエラーPHP Notice: Undefined index: REQUEST_METHODについて

Posted at

PHPで以下の構文エラーが出た場合の解決方法を記載します

PHP Notice: Undefined index: REQUEST_METHOD in /var/www/html/create.php on line 35

if(!empty($_SERVER['REQUEST_METHOD'] === 'POST')){
$company = [
'title' => $_POST['title'],
];

※インデックスの異常であるが、
ローカル環境(アパッチ)でデバック上ではデーターのやり取りは正常。

解決方法

このエラーは、$_SERVER['REQUEST_METHOD']が存在しないために発生しています。これは通常、スクリプトがWebサーバー環境外で実行されるか、正しいHTTPリクエストがされていない場合に起こります。

このコードにはいくつかの問題があります。

比較の括弧位置:

  1. $_SERVER['REQUEST_METHOD'] === 'POST' の結果が true か false となりますが、それを empty で判定しているため、常にtrueとなります。
  2. $_SERVER['REQUEST_METHOD']の存在確認
  3. $_SERVER['REQUEST_METHOD'] が設定されていない場合に備えて存在を確認する必要があります。

修正例

まず、比較の括弧位置を修正し、さらに$_SERVER['REQUEST_METHOD']の存在を確認する方法を以下に示します。

if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'POST') {
$company = [
    'title' => $_POST['title'],
];

}

このように修正することで、$_SERVER['REQUEST_METHOD']が設定されているか確認し、さらにその値がPOSTであるかどうかを適切にチェックできます。

ポイント

  1. Webサーバーで実行されているか確認
    スクリプトが正しいWebサーバー環境(例:Apache)で実行されていることを確認してください。

  2. 正しいHTTPリクエスト
    正しいHTTPメソッド(POST)が使われているかを確認します。例えば、フォームが正しく設定されているか、またはCurlなどを使って正しくリクエストを送信しているか確認します。

この修正を行うことで、エラーが解消され、意図した動作が得られるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0