繁体   English   中英

$ _SERVER ['PHP_SELF']擦除表单,不发布

[英]$_SERVER['PHP_SELF'] wiping form, not posting

我正在尝试将表单发布到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

您的表格是method="post"

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

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

(但是请参阅规范,以了解为什么应使用POST或GET并使用它们来决定应使用哪个规范 )。

在使用passcode.php作为文件名的情况下,示例输入12345将会输出: http://www.example.com/passcode.php?code=12345 : http://www.example.com/passcode.php?code=12345 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 : http://www.example.com/passcode.php?code=12345 12345

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM