具有POST方法的表单返回$ _REQUEST,但$ _POST为空

问题描述 投票:0回答:1

使用PHP7.x,我有一个简单的表格

<form method='post'>
<input type='text' action='' name ='yourname'>
<input type='submit' name = 'submitted' value = 'here'>
</form>

提交按钮可以正常工作。通过开发人员工具查看POST,我看到了提交的输入字段的值。因此,“开发人员工具”窗口中的POST参数将显示输入的值。

但是如果我的处理页面(“操作”页面)包含此代码

echo $_POST['yourname'];

输出为空。这个说法echo $_REQUEST['yourname']显示输入的值。

为什么$_POST['yourname']不显示值?

而且,我使用此命令清除所有表单数据

$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

我可以更改代码以使用$_REQUEST['yourname'],但是$_POST['yourname']为什么不显示数据?而且,我的filter_input_array()是否会“清除”所得的$_REQUEST值?

php forms post
1个回答
0
投票

首先,

HTML看起来有点不对。。

  1. 动作属性不是有效的输入属性。
  2. [提交按钮]中有空格
  3. 没有在表单上声明操作,大多数浏览器会将其发布到引用页面,但不是全部。

如果我修复这样的代码,我的输出就很好:

<?php // this file is test.php
    if (sizeof($_POST))
      var_dump($_POST);
?>
   <form method='post' action='test.php'>
   <input type='text' name ='yourname'>
   <input type='submit' name='submitted' value='here'>
   </form>

我得到了预期的答复:

array(2) { ["yourname"]=> string(4) "test" ["submitted"]=> string(4) "here" }

© www.soinside.com 2019 - 2024. All rights reserved.