我有一个使用 POST 的表单和一个变量。 我如何在 $_POST 中设置该变量,以便在提交表单后,我仍然可以获得该变量?
我试过了
$_POST['variable'] = $variable;
它最终是空的。
最佳答案
您应该将该变量作为表单中的隐藏字段,或者使用 session 变量。
隐藏字段
<form method="POST" action="someactionpage.php">
<input type="hidden" name="my_var" value="<?php echo $myvar; ?>" />
<!-- ... -->
</form>
然后在 someactionpage.php 提交表单时使用 $_POST['my_var']
获取它。
session 变量
只需将它存储在 $_SESSION 变量中
<?php
session_start (); // Just once at the beginning of your code
// ...
$_SESSION['my_var'] = $myvar;
?>
并在另一个页面上检索它
<?php
session_start (); // Same than before
// ...
echo $_SESSION['my_var'];
?>
附加信息
正如某些答案和评论中所指出的,您应该始终检查变量是否存在,因为您无法保证这一点。只需使用 isset function
if (isset ($_SESSION['my_var']))
// Do stuff with $_SESSION['my_var']
或
if (isset ($_POST['my_var']))
// Do stuff with $_POST['my_var']
正如 Kolink 指出的那样在评论中,用户可以轻松查看和更改字段值(通过 POST 发送)。所以总是喜欢 session 变量,除非它真的是非关键信息。
关于php - 设置 $_POST 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17264103/