[mysql]提交表单从另一种形式,$_POST 值

标签: MySQL PHP
发布时间: 2017/4/9 22:07:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个值,来从另一个窗体中调用 $_POST [串行] 的同一页。我想要使用此值来运行查询,另一种形式,但在提交什么都没有发生的第二个窗体后和未运行该查询。

<?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'");
    }
}

?>

解决方法 1:

沿着你变量传递会创建一个隐藏的输入在第二个窗体上要包含的值︰

<?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>

为了安全起见

您的脚本是在 SQL 注入式攻击的风险。

如果可以的话,你应该停止使用 mysql_* 函数这些扩展在 PHP 7 已删除。PDOMySQLi了解准备语句,请考虑使用 PDO,真的不难

额外的想法

如果你计划要做两步形式你可能想要将所有的数据处理以外的窗体页中,放置在一个单独的 PHP 文件。用有限的代码你已经证明我担心我们将错过某些东西在我们会导致你额外的问题因为你的代码仍然不工作,正如您期望的答案。

官方微信
官方QQ群
31647020