URL中include内部的$_GET


$_GET inside include from URL?

我想包含一个文件,但对于$_get,我不知道如何解释,但我尝试给出示例。

我需要包含一个来自URL的文件,比如这个

mysite.com/?=MYINCLUDETEXT

并在<?php include('MYINCLUDETEXT.php'); ?> 上写入

有人告诉我,谢谢。

这实际上会做你想要的

if (isset($_GET['file'])){
  include($_GET['file'].'.php');
}

您可能还想测试您试图包含的文件是否存在file_exists实际上是一个文件is_file,而不是文件夹。

但你必须明白,即使这样做,你也会在你的系统中制造一个大漏洞,并帮助那些想破解你的系统的人。不仅可以更容易地包括上传的文件(不仅是有效上传的文件),还可以包括服务器上的随机文件。

为了避免上面答案中描述的问题,请将所有文件名(应该包括在内)放在数组中,如:

$pages_array=('home','services','contact').

然后检查GET var:if(!in_array($_GET['page'], $pages_array) { die(); }

因为您可能需要一些其他$_GET值/var,我建议您使用$_GET['page']-来包含。。。你可以稍后添加mod重写以显示页面为"正常"url。。。例如

www.yoursite.com/index.php?page=contact,可以重写为:www.yoursite.com/contact.html