0

私はコーディングについてほとんど知りません。おそらく非常に基本的な質問があります。ページ A のさまざまなリンクを使用して、PHP を使用して表示するテキスト ファイルをページ B に伝えたいと考えています。

ページ B で PHP を使用して、特定の名前のファイルを表示できます。例えば

$f = fopen("first_file.txt", "r");
// Read line by line until end of file
while(!feof($f)) {
echo fgets($f) . "<br />";
}
fclose($f);

しかし、表示したいテキスト ファイルごとに 1 つずつ、何百ものページを作成して保存したくはありません。ページ B を一種のテンプレートとして作成し、ページ A からのリンクによって何らかの形で伝達される変数を使用して、(テキスト ファイルから) そのテキストを入力することをお勧めします。

ページ A で次のようなものを使用するように誰かに言われました (完全に間違っている可能性があります)。

<a href="pageB.php?txtfile:first_file.txt">First Text</a> 
<a href="pageB.php?txtfile:second_file.txt">Second Text</a>, etc.

しかし、ページ B の PHP コードを変更して、ページ A のリンクから変数を取得する方法がわかりません。

4

1 に答える 1

0

まずその

<a href="pageB.php?txtfile=first_file.txt">First Text</a> 

コロンではありません

次に、変数は$_GET['txtfile']

っていうことは

$f = fopen($_GET['txtfile'], "r");

セキュリティ警告: 必要なファイル名を URL に追加してこれを行うと、誰でもサーバー上の任意のファイルにアクセスできます

たとえば、誰かが次の URL をリクエストする場合があります。

pageB.php?txtfile=../../../../../../../../etc/passwd

別のアプローチ:

 <a href="pageB.php?txtfile=1">First Text</a>

pageB.php:

$files=array('1'=>'file1.txt','2'=>'file2.txt');
$f = fopen($files[$_GET['txtfile']], "r");
 ...

ファイル リストが膨大な場合は、データベースを使用して管理することをお勧めします。

于 2013-09-05T21:48:38.917 に答える