【问题标题】:Appending a Query String to the End of a Function Action URL将查询字符串附加到函数操作 URL 的末尾
【发布时间】:2010-04-19 19:10:45
【问题描述】:

对于下面的代码,我想将echo $_SERVER['QUERY_STRING']; 附加到 index.php 的末尾。但是当我尝试这样做时,它会使代码返回一个空白页。所以我想我可能做错了。

我怎样才能正确地制作这个附件?

提前致谢,

约翰

    <?php

    function show_loginform($disabled = false)
    {

        echo '<form name="login-form" id="login-form" method="post" action="./index.php"> 

    ...

    ?>

【问题讨论】:

    标签: php forms query-string


    【解决方案1】:

    怎么样:

    echo '<form name="login-form" id="login-form" method="post" action="./index.php?'.$_SERVER['QUERY_STRING'].'">';
    

    【讨论】:

    • 只是为了补充这个答案,一个非常常见的错误是假设 $_SERVER['QUERY_STRING'] 包含问号以及查询字符串。实际上,您必须手动添加问号,就像 webbiedave 所做的那样。
    • 此方法有效,除非他的空白页是由 PHP 错误而非 404 引起的
    • @webdestroya :OP 的问题暗示页面空白是在尝试附加查询字符串时引起的。这个答案向他展示了如何正确地做到这一点。如果发现存在其他问题,他可以发布不同的问题。
    【解决方案2】:

    嗯嗯。你会拼写 XSS 吗?

    我建议使用这个更安全的选择:

    $url='./index.php';
    $qry=array();
    $join='';
    foreach ($_GET as $name=>$val) {
       $join='?';
       $qry[]=urlencode($name) . '=' . urlencode($val);
    }
    $url.=$join . implode('&',$qry);
    print "<....action='$url'>";
    

    【讨论】:

      猜你喜欢
      • 2017-09-29
      • 2014-03-06
      • 2022-12-11
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 2012-08-03
      • 2012-02-16
      相关资源
      最近更新 更多