0

私が構築しているページでは、URL の末尾にある変数に応じて、ページの一部にファイルをロードする必要があります。たとえば、ページの URL が test.php?page=lp の場合、ページにはファイル lp.php が含まれます。これはしばらくの間機能していましたが、突然停止し、ファイルが存在しないかのようにエラーが返されます。次に、ファイルが「見つからない」場合に次のようにメッセージが表示されるように、スクリプトを「きれいに」しました。

<?php $times = substr_count($_SERVER['PHP_SELF'],"/");
$rootaccess = "";
$i = 1;

while ($i < $times) {
 $rootaccess .= "../";
 $i++;
}
$y = date("Y");
$ymo = $y-1;

//$rootaccess.
if(!file_exists($page.".php")){
echo "The file requested (www.websitename.co.uk$rootaccess$page.php) was not found, or an error occured";

}
else {include($rootaccess.$page.".php");} ?>    

そして、ファイルが見つからない場合の結果がスローされるだけです... したがって、test.php?page=lp の例では、「要求されたファイル (www.websitename.co.uk/lp)」というメッセージが返されます。 .php) が見つからないか、エラーが発生しました。」しかし、ここにファイルがあります。ページもAJAXを使用しているためです。AJAXリンクを使用して、まったく同じファイルをまったく同じ場所にロードすると、機能します! (同様に、エラーに表示されるアドレスを入力すると機能します) $page が設定されているかどうかをスクリプトが確認するために GET を使用しました。これにより、ページの他の要素も変更されるため、これが機能していることがわかります。 ..しかし、何らかの理由でファイルを含めたくない-では、これに対する回避策は何ですか? (rootaccess ビットなしでも試してみましたが、それでも失敗します) ありがとうございます。(また、

4

1 に答える 1

0

私は以前に同じ問題に遭遇したと思います。使用してみてください:

$foo = trim($page.".php");

if(!file_exists($foo)) {
     :
} else {
     include(trim($rootaccess.$foo));
}
于 2012-09-19T02:55:42.550 に答える