使用表单提交将变量从HTML传递到PHP

时间:2011-03-12 20:33:31

标签: php html

我遇到以下代码问题。我希望在使用“搜索”按钮提交表单时显示标题Search results,并且我尝试使用名为搜索的隐藏输入来实现此功能。这个想法是,当提交表单时,此值设置为“是”,这将显示标题,但这不是这里发生的事情。谁能告诉我哪里出错了?

<html>
    <head>
        <title>Search</title>
    </head>

    <body>
        <h1>Search</h1>

        <form name = "search" action = "<?=$PHP_SELF?>" method = "get">
            Search for <input type = "text" name = "find" />
            <input type = "hidden" name = "searching" value = "yes" />
            <input type = "submit" name = "search" value = "Search" />
        </form>

        <?php
            if ($searching == "yes")
            {
                echo "<h2>Search results</h2>";
            }
        ?>
    </body>
</html>

3 个答案:

答案 0 :(得分:2)

@chris,你不必使用隐藏字段。你可以检查表单是否像这样提交:

if(isset($_GET['search'])) echo 'foo';

@Boris,为什么将全局存储到另一个var更安全?如果你检查全球对抗正则表达式或之前的任何事情,我会同意。

菲利克斯

答案 1 :(得分:1)

您需要访问超级全球$_GET

if($_GET["searching"]=="yes"){
  //echo here
}

答案 2 :(得分:1)

除非您使用的是旧版本的PHP或非常不安全的配置,否则您可能不会使用全局变量。

因此,您需要先从魔术$_GET变量中检索$searching变量。

$searching = $_GET['searching'];