从另一个表单提交表单,$ _POST值

时间:2015-09-21 16:23:28

标签: php mysql

我有一个值来自同一页面中另一个名为$ _POST ['serial']的表单。我想使用此值以另一种形式运行查询,但在我提交第二个表单后,没有任何事情发生,查询未运行。

<?php

if (isset($_POST['serial'])) {
    $serial = $_POST['serial'];
?>
    <form action="" method="post">
        <button type="submit" name="submit">Click to use</button>
    </form>
<?php
    if (isset($_POST['submit'])) {
        $query = mysql_query("UPDATE table_name SET status = 'inactive' WHERE serial = '$serial'");
    }
}

?>

2 个答案:

答案 0 :(得分:6)

要传递变量,您将在第二个表单上创建一个隐藏输入以包含值:

<?php
    // check and clean up the passed variable 
    $serial = isset($_POST['serial']) ? htmlspecialchars($_POST['serial']) : '';
?>

<form action="" method="post">
    <input type="hidden" name="serial" value="<?php echo $serial; ?>" />        
    <button type="submit" name="submit">Click to use</button>
</form>

安全的清醒

Your script is at risk for SQL Injection Attacks.

如果可以,你应该stop using mysql_* functions。已在PHP 7中删除These extensions。了解preparedPDOMySQLi语句,并考虑使用PDO,it's really not hard

其他想法

如果您打算执行两步表单,则可能需要将表单页面的所有数据处理放在之外的单独的PHP文件中。由于您显示的代码有限,我担心我们会在答案中遗漏一些内容,因为您的代码仍然无法按预期运行,因此会引发更多问题。

答案 1 :(得分:0)

按钮需要名称才能成功。您的按钮没有值,因此$_POST['submit']将不确定。

value元素中添加<button>属性。

执行此操作后,$serial将被取消定义,因为您的表单未提交。

您还需要将其包含在表单中:

<input type="hidden" name="serial" value="<?php echo htmlspecialchars($serial); ?>">