Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php函数,用于从地址栏获取信息并包含指定文件(动态页面?)_Php - Fatal编程技术网

php函数,用于从地址栏获取信息并包含指定文件(动态页面?)

php函数,用于从地址栏获取信息并包含指定文件(动态页面?),php,Php,我是stackoverflow和php的新手,我正在尝试正确地编写代码。我试图做的是消除index.php以外的页面显示,但仍然通过使用地址栏来包含它们。例如,我试图编写一个登录脚本,其中包含一个login.php文件,但处理表单的所有post信息,并通过index.php文件进行检查 我试图创建一个函数,在地址栏调用时只包含特定页面。因此,表单的操作将是index.php?act=login-我希望$\u获得act(login)并包含login.php,而用户不必包含任何其他会带来安全风险的文

我是stackoverflow和php的新手,我正在尝试正确地编写代码。我试图做的是消除index.php以外的页面显示,但仍然通过使用地址栏来包含它们。例如,我试图编写一个登录脚本,其中包含一个login.php文件,但处理表单的所有post信息,并通过index.php文件进行检查

我试图创建一个函数,在地址栏调用时只包含特定页面。因此,表单的操作将是index.php?act=login-我希望$\u获得act(login)并包含login.php,而用户不必包含任何其他会带来安全风险的文件

这是我的代码:

    function getContent() {

    $pages = array('login','page1');

    if(isset($_GET['act']) && $_GET['act'] == $pages) {
        include($_GET['act'] . '.php');
    } elseif (!isset($_GET['act'])) {
        echo 'INDEX PAGE';
    }
}

getContent();

我哪里做错了?设置index.php?act=login时,无法显示login.php页面。文本“索引页”显示正常,但未设置act。

您可以将其更改为in_array():


您可以将其更改为in_array():


如果不正确,您的
。你想要这样的东西:

if(isset($_GET['act']) && in_array($_GET['act'], $pages)) {
    include($_GET['act'] . '.php');
}

如果
不正确,您的
。你想要这样的东西:

if(isset($_GET['act']) && in_array($_GET['act'], $pages)) {
    include($_GET['act'] . '.php');
}

这行代码是您的问题:

 if(isset($_GET['act']) && $_GET['act'] == $pages) {
您需要将其更改为此(当您检查页面数组中是否存在
act
的值时):

不过,您可能想用标准else替换您的
elseif
。因为如果设置了
$\u GET['act']
,但不在页面数组中,则不会执行elseif


此外,我强烈建议您使用微框架,如,一旦您对PHP更加熟悉,它将为您处理此问题(更安全)。

这一行代码就是您的问题:

 if(isset($_GET['act']) && $_GET['act'] == $pages) {
您需要将其更改为此(当您检查页面数组中是否存在
act
的值时):

不过,您可能想用标准else替换您的
elseif
。因为如果设置了
$\u GET['act']
,但不在页面数组中,则不会执行elseif


此外,我强烈建议您使用微框架,如,一旦您对PHP更加熟悉,它将为您处理此问题(更安全)。

是的!这正是我需要的。是的!这正是我所需要的。有人告诉我框架是好的,但对于一开始,最好编写自己的代码。是一个微框架比一个完整的框架更好(我们在看Cake PHP)。你肯定是对的(编辑以反映这一点)。微框架和全堆栈框架完全是另一个问题,但它们在不同的方面都更好。有人告诉我框架是好的,但对于开始来说,最好编写自己的代码。是一个微框架比一个完整的框架更好(我们在看Cake PHP)。你肯定是对的(编辑以反映这一点)。微框架和全堆栈框架完全是另一个问题,但它们都适用于不同的事情。