使用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
值?
首先,
HTML看起来有点不对。。
如果我修复这样的代码,我的输出就很好:
<?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" }