我对编码知之甚少。我有一个非常基本的问题。我想使用页面A上的各种链接告诉页面B使用PHP显示哪个文本文件。
我可以在第B页上使用PHP来显示特定命名的文件。 E.g。
$f = fopen("first_file.txt", "r");
// Read line by line until end of file
while(!feof($f)) {
echo fgets($f) . "<br />";
}
fclose($f);
但我不想创建和存储数百个页面,每个页面对应我要显示的每个文本文件。我更喜欢将页面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页的链接中获取变量。有任何帮助吗?
答案 0 :(得分:0)
首先是
<a href="pageB.php?txtfile=first_file.txt">First Text</a>
等于非冒号
然后变量在$_GET['txtfile']
所以
$f = fopen($_GET['txtfile'], "r");
安全警告,任何人都可以访问您服务器上的任何文件,如果您通过将他们想要的文件名添加到网址
例如,有人可能会决定请求此网址:
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");
...
如果文件列表很大,您可能需要使用数据库来管理它。