0

我正在尝试将表单发布到如下 URL,但是它只是擦除表单并且在单击提交时不发布任何内容。

有任何想法吗?我看不出有什么不对,所以需要另一双眼睛。

<form class="form-inline" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="code" class="input" placeholder="Enter Passcode Here..">
<button type="submit" class="btn">Submit</button>
</form>

如果我在代码输入中输入 12345667890 并单击提交,我希望 URL 显示 www.domain.com/index.php?code=1234567890。这不会发生,它只是擦除表单并加载 www.domain.com/index.php

4

3 回答 3

2

你的表格是method="post".

POST 数据被编码到HTTP 请求的正文中,而不是 URL。提交表单的服务器端脚本仍然可以访问它。

如果您希望数据显示在 URL 中,请使用method="GET".

(但请参阅规范以了解您应该使用 POST 或 GET 的原因,并使用它们来决定您应该使用哪个)。

于 2013-06-20T14:14:20.167 回答
1

passcode.php用作文件名时,例如输入, 将按预期12345输出: 。http://www.example.com/passcode.php?code=12345

这是经过全面测试和工作的代码:

<form class="form-inline" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="code" class="input" placeholder="Enter Passcode Here..">
<button type="submit" class="btn">Submit</button>
</form>

您必须使用该GET方法来实现这一点,而不是POST.

要回显 URL 的完整字符串,请使用以下命令:

<?php

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $url;

?>

<form class="form-inline" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="code" class="input" placeholder="Enter Passcode Here..">
<button type="submit" class="btn">Submit</button>
</form>

12345用作输入时,将输出(回显):http://www.example.com/passcode.php?code=12345

于 2013-06-20T14:08:40.273 回答
0

此时,表单完全按照您编写的方式执行。它将表单提交到同一页面。然后,您不会对发布数据执行任何操作。并且脚本只是再次返回相同的 html。

于 2013-06-20T13:26:11.420 回答