我的home.php文件中有下一个代码:
<html>
<body>
<table border="3">
<tr><td>
<a href="?page=my_page_1">Page 1</a>
</td></tr>
<tr><td>
<a href="?page=my_page_2">Page 2</a>
</td></tr>
</table>
<?php
if(isset($_GET['page'])){
$page = $_GET['page'];
$filename = $page.'.php';
if(file_exists($filename)){
include($filename);
}
else{
echo("File does not exist");
}
}
else{
echo("Page does not set");
}
?>
</body>
</html>
当其中一个链接被按下时,我希望将页面重新加载为某个.php文件。但是,由于某种原因,没有任何事情发生。文件“my_page_1.php”和“my_page_2.php”确实存在,并且与“home.php”位于同一文件夹中。我想它不会像我认为的那样有效,所以有人可以解释一下当链接被压迫时真正发生了什么吗?
答案 0 :(得分:1)
您是否考虑过使用
header("Location: $filename");
这会在新网址上重新加载页面。
答案 1 :(得分:0)
您需要配置服务器,以便允许以?页开头的链接。否则,您需要按照评论中的建议添加当前网址。
您可以查看Apache mod_rewrite以获取更多详细信息。使用mod_rewrite的一个更好的方法是保留页面名称,但删除扩展名,即home?page = my_page_x。这更灵活,允许搜索友好且更易读。
注意:在生产中,您不应该包含GET变量中的文件,因为它会引发很多安全问题。
答案 2 :(得分:0)
似乎php只会在服务器上执行,而不是由浏览器执行简单的脚本。