我的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"answers"my_page _2.php"确实存在,并且与"home.php"位于同一文件夹中。我想它并没有像我认为的那样工作,所以有人能解释一下当链接被按下时到底发生了什么吗?
你想过使用吗
header("Location: $filename");
这将在新的url上重新加载页面。
您需要配置服务器,以便允许以?开头的链接?页否则,您将需要按照注释中的建议添加当前url。
您可以查看Apache mod_rewrite以了解更多详细信息。使用mod_rewrite的更好方法是保留页面名称,但删除扩展名,即home?page=my_page_x。这是更灵活的,并允许搜索友好和更可读的网址。
注意:在生产中,您不应该包含来自类似GET变量的文件,因为它会引发很多安全问题。
php似乎只能在服务器上执行,而不能作为浏览器的简单脚本执行。