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リクエストがされていない場合に起こります。
このコードにはいくつかの問題があります。
比較の括弧位置:
- $_SERVER['REQUEST_METHOD'] === 'POST' の結果が true か false となりますが、それを empty で判定しているため、常にtrueとなります。
- $_SERVER['REQUEST_METHOD']の存在確認
- $_SERVER['REQUEST_METHOD'] が設定されていない場合に備えて存在を確認する必要があります。
修正例
まず、比較の括弧位置を修正し、さらに$_SERVER['REQUEST_METHOD']の存在を確認する方法を以下に示します。
if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'POST') {
$company = [
'title' => $_POST['title'],
];
}
このように修正することで、$_SERVER['REQUEST_METHOD']が設定されているか確認し、さらにその値がPOSTであるかどうかを適切にチェックできます。
ポイント
-
Webサーバーで実行されているか確認
スクリプトが正しいWebサーバー環境(例:Apache)で実行されていることを確認してください。 -
正しいHTTPリクエスト
正しいHTTPメソッド(POST)が使われているかを確認します。例えば、フォームが正しく設定されているか、またはCurlなどを使って正しくリクエストを送信しているか確認します。
この修正を行うことで、エラーが解消され、意図した動作が得られるはずです。
エンジニアの成長には環境が大切って話
やっぱエンジニアが成長するには環境が大切ってのをつくづく感じる。
優秀なエンジニアの近くで開発してると学びも多いし、その人の考え方自体を取得できる。
今はエンジニア転職アプリ作っているからよかったらどうぞ。
エンジニア向けスカウトアプリ「LUIDA」
https://luida-japan.com/lp/2410?utm_source=qiita&utm_medium=referral&utm_campaign=article1