1

我最近获得了 Programming PHP, 3rd edtion 的副本,在第 10 页上我看到了一个让我怀疑的“回声”。

<html>
<head>
    <title>Personalized Greeting Form</title>
</head>
<body>
    <?php if (!empty($_POST['name'])) {
        echo "Greetings, {$_POST['name']}, and welcome.";
    } ?>

    <form action="<? echo php $_SERVER['PHP_SELF']; ?>" method="post">
        Enter your name: <input type="text" name="name" />
        <input type="submit" />
    </form>
</body>

表单标签上的“回声”是必要的吗?我试过没有它,它似乎工作得很好,但我不确定保持那个“回声”是否真的很重要......

如果有人知道这一点,我将不胜感激!

多谢你们!

4

5 回答 5

4

这取决于您使用的 HTML 版本。

表单操作默认为当前 URL。根据标准:

  • HTML 4中它是必需的并且必须是非空的,因此您需要使用echooraction="#"才能使表单有效
  • HTML 5中,它不是必需的,但如果存在则必须为非空,因此在这种情况下,您根本不应该定义actin并让默认值起作用
于 2013-11-06T03:34:07.417 回答
2

如果响应脚本在同一个文件中,则不需要在action=""参数中声明任何内容。所以,事实并非如此。

于 2013-11-06T03:34:10.670 回答
2

是与否。如果没有表单部分中的 echo,则操作如下:

<form action="" method="post">

这适用于 HTML4 及以下版本。但这在 HTML5 标准中是不正确的,并且不会验证。并且取决于用于访问页面的浏览器,可能会阻塞它。如果你有action=那么它必须有一些东西。在这种情况下,您可能会在其中添加 a #,如下所示:

<form action="#" method="post">

但这似乎很老套,可能不会面向未来。

为了避免 HTML4 和 HTML5 之间的麻烦,最好让它通过 that 将完整的 URL 放在那里echo

于 2013-11-06T03:38:36.557 回答
0

感谢所有回答我问题的人,这对我理解这个问题有很大帮助!

现在我想请大家回答另一个问题:)

这更像是一个观点而不是一个真正的问题:https ://stackoverflow.com/questions/20081548/how-would-you-use-a-book-such-as-programming-php-to-truly-learn-php-从头开始

于 2013-11-19T20:44:55.917 回答
0

您不需要echo进入action

The best thing you can do is leave out the action attribute altogether. If you leave it out, the form will be submitted to the document's address, i.e. the same page.

于 2013-11-06T03:37:56.957 回答