php - 如何使用 PHP 只上传 HTML 表单的特定部分?

标签 php html mysql forms

我有一个带有 4 个输入的 html 表单,但其中 1 个输入连接到 mysql 表 usersettings,其他 3 个输入连接到表 userinfo,4 个输入都是更新查询,不需要任何字段填写。这是表格:

<form method="post">
    <div id="settingsFirst">
        <div id="sfInner">
            <div id="soDelete1">
                &nbsp;Selecteer voor hoe lang uw taken actief blijven:
            </div>
                <div id="soDelete2">
                    <select id="selectDelete" name="deleteValue">
                        <option value="" disabled selected>Selecteer:</option>
                        <option value="1">1 uur</option>
                        <option value="2">12 uur</option>
                        <option value="3">1 dag</option>
                        <option value="4">Elke week</option>
                    </select>
                </div>
            </div>
        </div>
        <div id="settingsSecond">
            <div id="wwChange1">
                &nbsp;Wachtwoord veranderen:
            </div>
            <div id="wwChange2">
                &nbsp;Oud wachtwoord: <input id="wwChanger1" name="oldWW" type="password"></input><br>
                &nbsp;Nieuw wachtwoord: <input id="wwChanger2" name="newWW1" type="password"></input><br>
                &nbsp;Herhaal wachtwoord: <input id="wwChanger3" name="newWW2" type="password"></input>
            </div>
            <div id="wwChange3">
                <input id="saveSettings" name="submit" type="submit" value="Opslaan"></input>
            </div>
        </div>
    </form>

以及 PHP 上传脚本:

<?php
    if(isset($_POST['submit'])){
        if(isset($_POST['deleteValue'])){
            if($q8 = $db->prepare("UPDATE usersettings SET deletetimer = " . $deletetimer . " WHERE studid = '" . $studid . "'")){
                $q8->execute();
            }
        }
        if(isset($_POST['wwChanger1']) && isset($newWachtwoord) && isset($newWachtwoordHH)){
            if($_POST['wwChanger1'] == $wachtwoord && $newWachtwoord == $newWachtwoordHH){
                if($q9 = $db->prepare("UPDATE userinfo SET wachtwoord = '" . $newWachtwoord . "' WHERE studid = '" . $studid . "'")){
                    $q9->execute();
                }
            }
        }
    }
?>

我尝试仅上传填写的表单的相关部分,因此如果填写了select,则应更新用户设置表,如果填写了密码更改,则应更新用户信息表,如果所有内容都填满,则两个表都应该更新。但由于某种原因,当我尝试要求更改密码时,它不会更新我的表,并且我的旧密码仍然在那里。我也没有收到任何错误。怎么了?

最佳答案

您的验证应该是:

if(isset($_POST['oldWW']) && isset($newWachtwoord) && isset($newWachtwoordHH)){
            if($_POST['oldWW'] == $wachtwoord && $newWachtwoord == $newWachtwoordHH){
                if($q9 = $db->prepare("UPDATE userinfo SET wachtwoord = '" . $newWachtwoord . "' WHERE studid = '" . $studid . "'")){
                    $q9->execute();
                }
            }
        }

假设您的其他变量 $wachtwoord 设置正确。 您可能也应该通过 $_POST 获取这些内容。

关于php - 如何使用 PHP 只上传 HTML 表单的特定部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27720855/

相关文章:

MySQL 多列与单列的速度/优化

php - 优化使用 Magento 的网站

javascript - 需要优化网站的javascript代码

javascript - 成功后如何使用ajax在td中显示值和图像

C++:无法连接到远程mysql数据库

mysql - 使用正则表达式删除字符串中不需要的字符

php - 删除嵌套foreach PHP中的嵌套数组

php - mySQL中的表结构

javascript - jqSuite PHP 日期选择器对话框格式不起作用

html - 使用两个 CSS 注册和登录表单而不互相覆盖