【发布时间】:2021-11-07 16:07:15
【问题描述】:
我试图从我的根文件夹的子目录中引用一个文件,而这种方式只有“主”发生变化。
我的 home.php 文件中有这段代码:
<div id="main" class="main">
<?php require $_GET['main'] . ".php"; ?>
</div>
所有导航按钮都应将“main”更改为包含 home.php 的文件夹下的各个文件夹中的某些文件。
如果我引用的文件与我的工作文件位于同一文件夹中,则以下代码 sn-p 可以完美运行:
<a href="?main=dashboard.php">Dashboard 1</a>
我想做的是(我想)像这样:
<a href="?main=folder/dashboard.php"> Dashboard 1</a>
我引用的文件在不同的文件夹中。
另外,如果我引用有问题的文件
<a href="folder/dashboard.php"> Dashboard 1</a>
文件加载,但它不像?main=那样以“main”为目标
我尝试了无数我读到的方法/虽然会奏效,但到目前为止没有任何效果。任何帮助将不胜感激。
【问题讨论】:
-
第一:未经验证不要这样做。因为可以注入任何路径。第二:需要对
?main=folder/dashboard.php路径中的斜杠进行URL编码。 -
在所有情况下
?main=dashboard.php,最终都会做require 'dashboard.php.php'; -
我尝试了 url 编码,但它似乎不起作用(可能是我的错)。你能给我一个工作的例子吗? @MarkusZeller
-
是的,因为您在 URL 中提供
.php并添加代码。 -
请注意:我同意您应该使用 URL 编码(作为您添加为 URL 的查询参数的任何内容的一般原则)。但是没有特别需要在查询字符串中对
/进行 URL 编码,因为它们在 URL 的那部分没有特殊含义。
标签: php html href web-development-server