私が作成した Web サイトで非常に奇妙な問題が発生しました。
基本的に、私は「貧乏人のルーター」で構築されたサイトを持っているので、site.com/contact に行くと、いくつかの変数セットと私のサイトのスケルトン (メイン構造)。スケルトンの内部には、特定のページのコンテンツを取得する別のインクルードがあります。これは、前述の index.php ファイルに設定された変数によって指定されます。
問題は、この連絡先ページにアクセスすると、送信されると電子メールを送信することになっている連絡先フォームがあることです。すべて問題ないように見えますが、連絡先ページのコンテンツ ファイルにある PHP は実行されません。そこで、コンテンツファイルがスケルトンファイルのディレクトリよりも深い場合、動作しないという問題に絞り込んだようです。ディレクトリがどのようになっているのかをお見せしましょう:
/
--skeleton.php
--/content
----contact.php
--/contact
----index.php
つまり、index.php -> skeleton.php -> contact.php となります。
ルート ディレクトリに配置しない限り、contact.php の PHP が機能しません。なぜこれを行うのですか?私がやっていることは最も理想的な方法ではないことはわかっていますが、それは私が助けを求めていることではありません。ファイルがこのように編成されているときに PHP が実行されない理由を知りたいだけです。
//INDEX.PHP
$content = 'contact.php';
include('../skeleton.php');
//SKELETON.PHP
include($site . 'content/' . $content);
//CONTACT.PHP
if($send_info == 1) {
// send email
} else {
// show form
}