不使用表单设置POST变量

den*_*iss 51 html php post

有没有办法设置一个$_POST['var']不使用表单相关字段(没有类型='隐藏')和仅使用PHP.就像是

$_POST['name'] = "Denniss";
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

编辑:有人问我对此有所详述.所以,例如,我有一个页面上有一个表单,表单看起来像这样

<form method='post' action='next.php'>
<input type='text' name='text' value='' />
<input type='submit' name='submit' value='Submit'/>
</form>
Run Code Online (Sandbox Code Playgroud)

单击提交按钮后,我想重定向到next.php.有没有办法让$ _POST ['text']变量设置为另一个值?如何使这个持久化,以便当我点击另一个提交按钮(例如)时,$ _POST ['text']将是我在next.php上设置而不使用隐藏字段.

如果仍然不清楚,请告诉我,谢谢你的帮助.

Sar*_*raz 77

是的,只需将其设置为另一个值:

$_POST['text'] = 'another value';
Run Code Online (Sandbox Code Playgroud)

这将覆盖text与数组键对应的先前值.该$_POST是超全局关联数组,你可以改变像一个值正常的PHP数组.

警告:此更改仅在同一PHP执行范围内可见.执行完成并且页面已加载后,$_POST阵列将被清除.新表单提交将生成一个新$_POST数组.

如果要在表单提交中保留值,则需要将其作为input标记的value属性放在表单中,或从数据存储中检索它.

  • 虽然这回答了字面上的问题,但它完全忽略了这样做的观点是毫无意义的.是的,你可以覆盖`$ _POST`中的值.大.就像你做`$ foo = $ _POST一样; $ foo ['bar'] ='baz';`你正在改变一个变量,仅此而已.这并不意味着您正在改变HTTP POST数据,或者这将持续到下一页或者问题开始时有任何意义.-1 (29认同)
  • @deceze:这有合法用途 - 例如,在单元测试中设置`$ _POST`变量.+1 (11认同)

Rak*_*ard 6

如果要将$ _POST ['text']设置为其他值,为什么不使用:

$_POST['text'] = $var;
Run Code Online (Sandbox Code Playgroud)

在next.php上?