【问题标题】:$_GET['page'] doesnt go through$_GET['page'] 没有通过
【发布时间】:2013-01-07 00:27:50
【问题描述】:

我的表单有点问题,我只是希望你能回答我的问题。 基本上,有一个 index.php 包含页眉、页脚,在它们之间,我放了一个 require $_GET['page'].'.php'; 我所有的页面都有指向index.php?page=pagename 的链接,而且它运行得几乎完美。 我唯一的问题是页面变量不会通过通过$_GET 发送其他变量的表单,尽管如果表单为空或有变量通过$_POST 进入下一页,它会很好用。每当我尝试使用 url 将 $_GET['page'] 传递到另一个页面时,它就无法正常工作,表单变量将显示在 var_dump() 中,但页面不会。这是代码,在我看来这真的不那么重要。

index.php

if (!isset($_GET['page'])) //This returns TRUE
{
echo redirect_tempo(500, 'index.php?page=home');    
}
    elseif ($_GET['page']=="index") 
    {
    echo redirect_tempo(500, 'index.php?page=home');        
    }
        elseif (file_exists($_GET['page'].".php"))
        {
        require $_GET['page'].'.php';
        }
            else 
            {
            echo redirect_tempo(500, 'index.php?page=404');
            }

test.php

<form action="index.php?page=test" method="GET">
Obtenir les disponibilités des hôtels pour la date suivante : 
<input type="text" name="date" size="12" id="inputField" /><br /><br />
<input type="submit" value="Rechercher" />
</form>

在这种情况下 var_dump 只会显示 $_GET['date']

我很确定这是一个众所周知的错误和非常愚蠢的错误,但我真的在互联网上找不到任何东西(不容易找到......)

非常感谢您的帮助:)

巴斯蒂安

【问题讨论】:

  • 请注意:require $_GET['page'].'.php'; 可能会导致一些严重的安全漏洞——我建议您寻找另一种包含文件的方法。简单地说,您可以列出 valid $_GET['page'] 结果并检查该列表,否则忽略。
  • 如果有人试图访问其他文件,if(file_exists()) 将返回 false。老实说,我不够熟练,无法找到其他方法来做到这一点。无论如何感谢您的提醒:)

标签: php html


【解决方案1】:

如果你使用 GET 方法,那么只有表单元素会被附加到链接。来自表单操作的 GET 参数将被忽略。试试这个:

<form action="index.php" method="GET">
    <input type="hidden" name="page" value="test" />
    Obtenir les disponibilités des hôtels pour la date suivante : 
    <input type="text" name="date" size="12" id="inputField" /><br /><br />
    <input type="submit" value="Rechercher" />
</form>

【讨论】:

  • @user1711820 如果它是您问题的正确答案,请选择此答案为正确
【解决方案2】:

尝试添加一个隐藏的输入字段。

<input type="hidden" name="page" value="test" />

【讨论】:

    【解决方案3】:

    尝试将操作字段留空并通过隐藏的输入字段发送 GET 变量,这可能会解决您的问题。

    <form action="" method="GET">
    Obtenir les disponibilités des hôtels pour la date suivante : 
    <input type="text" name="date" size="12" id="inputField" /><br /><br />
    <input type="hidden" name="page" value="test"/>
    <input type="submit" value="Rechercher" />
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多