1

私はphpに非常に慣れていないことに注意してください。

さて、私はスクリプトを持っています。

変数ページを特定のページに送信しますが、変数が既存のページと一致する場合にのみ、

たとえば mysite.com/?varible123 で、varible123 が存在する場合はそのページに送信されますが、存在しない場合はデフォルトのページに送信されます。私の場合、私のホームページ「メイン」では、存在しない変数ページが私のホームページに送信されるのではなく、それらのページのデフォルトだけが必要です。

スクリプトを変更して、存在しないすべての変数をホームページ以外のデフォルト ページに送信したいと考えています。

呼び出されたときに表示されるホームページ。

そのため、誰かが mysite.com にアクセスするとホームページが表示されますが、誰かが mypage.com/?nonexsitenpage にアクセスすると、ホームページではないデフォルトのページに送信されます。

? サイトのマークはそこにとどまる必要があります。

私が持っているコードは

<?php
$page = $_SERVER['argv'][0];
if (!file_exists($page.".htm")){
 //check to make sure the file exists
 $page = "main";
 //include this page by default
}
if (strstr($page, ".")){ 
 //hack attempt
 $page = "main";
}
require_once($page.".htm");
//hard code extension to prevent getting hacked
//http://mysite.com/?lol will include lol.htm
?> 

どんな助けでも感謝します。

4

1 に答える 1

1

インクルードを使用できます。ただし、各ページには、他のページ内で適切にレンダリングするためのコードが必要です。これが最も高速にレンダリングされます。

<?php
$page = $_SERVER['QUERY_STRING'];

if (strstr($page, ".") !== false){ means . is there 
 //hack attempt
 $page = "main";
}
 //first check for hack

if (!file_exists($page.".htm")){
 //check to make sure the file exists
 $page = "main";

 //include this page by default
}
 include 'main.php'; //or main.html and return
   return;
//hard code extension to prevent getting hacked
//http://mysite.com/?lol will include lol.htm
?> 

世界に公開する前に、自分で試してみてください。おそらく、他の spl 文字をチェックするか、名前として az、アンダースコア、およびダッシュのみを許可する必要があります。

于 2013-08-24T10:21:08.187 に答える