设置$ _POST变量

Cod*_*son 3 php forms variables post

我有一个使用POST的表单和一个变量.如何在$ _POST中设置该变量,以便在提交表单后,我仍然可以获取变量?

我试过了

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

它最终是空的.

Jer*_*ska 6

您应该将该变量作为表单中的隐藏字段,或使用会话变量.

隐藏的领域

<form method="POST" action="someactionpage.php">
    <input type="hidden" name="my_var" value="<?php echo $myvar; ?>" />
    <!-- ... -->
</form>
Run Code Online (Sandbox Code Playgroud)

后得到它someactionpage.php$_POST['my_var']时提交表单.

会话变量

只需将它存储在$ _SESSION变量中即可

<?php
    session_start (); // Just once at the beginning of your code
    // ...
    $_SESSION['my_var'] = $myvar;
?>
Run Code Online (Sandbox Code Playgroud)

并在另一页上检索它

<?php
    session_start (); // Same than before
    // ...
    echo $_SESSION['my_var'];
?>
Run Code Online (Sandbox Code Playgroud)

附加信息

正如在一些答案和评论中指出的那样,您应该始终检查变量是否存在,因为您无法保证这一点.只需使用isset函数

if (isset ($_SESSION['my_var']))
    // Do stuff with $_SESSION['my_var']
Run Code Online (Sandbox Code Playgroud)

要么

if (isset ($_POST['my_var']))
    // Do stuff with $_POST['my_var']
Run Code Online (Sandbox Code Playgroud)

正如Kolink在评论中指出的那样,用户可以很容易地看到并更改字段值(通过POST发送).所以总是喜欢会话变量,除非它确实是非关键信息.

  • 请注意,`$ _SESSION`优于`$ _POST`,因为隐藏的输入可以由用户更改. (3认同)