実現したいこと
- require_once しているファイルを無視してPHPを実行する(Webページにアクセスする)ことが可能なのか知りたいです(※特定のIPアドレス以外では定数が定義されていないというエラーは発生しません)
- 1が可能の場合、定数を定義しているファイルを読み込ませるようにしたいです。
発生している問題・分からないこと
index.php は定数 SITE_NM を定義した define.php を必ず require_once して読み込んでいます。
なので index.php 実行時に定数 SITE_NMが定義されていないということはありません。
しかしながら特定のIPアドレスからアクセスされた場合に、
PHP Fatal error: Uncaught Error: Undefined constant "SITE_NM" in 略/index.php:xx という Fatal error が発生します。
エラーメッセージ
error
1PHP Fatal error: Uncaught Error: Undefined constant "SITE_NM" in (略)/index.php:xx 2Stack trace: 3#0 {main} 4 thrown in (略)/index.php on line xx
該当のソースコード
PHP
1[define.php] 2<?php 3略 4define('SITE_NM', 'サイト名(仮)'); 5略
PHP
1[index.php] 2<?php 3require_once './define.php'; 4 5略 6<title><?php echo SITE_NM; ?></title> 7略
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
定数が定義されていないという PHP Fatal error が発生する特定のIPアドレスについて、Whois で調査しました。
- 50.19.46.214 = ec2-50-19-46-214.compute-1.amazonaws.com → Amazon.com, Inc. (AMAZO-4)、アメリカ合衆国
- 199.45.155.17 = scanner-202.hk2.censys-scanner.com → Censys, Inc. (CENSY)、インド
- 198.235.24.92 → Palo Alto Networks, Inc、アメリカ合衆国
補足
・PHPのバージョンは8.3、スクラッチなのでフレームワークは使用していません。
・PHP 7.4の時は「PHP Warning: Use of undefined constant SITE_NM - assumed SITE_NM' (this will throw an Error in a future version of PHP) in 略/index.php on line xx」という Warning が発生していました。
お詳しい方、アドバイスよろしくお願いします。

回答1件
あなたの回答
tips
プレビュー