PHP多种形式,第二种使用第一类的数据

输入Strandman

我正在尝试首先获取ID来查询数据库并将结果打印在表中(此部分有效)。然后,我想获取用户提供的ID,并使用它使用PHP更新数据库中的信息。我想使用第二种形式上的输入作为更新数据库的值。要更改的表是customers,它具有字段ID,NAME,ADDRESS。我不希望用户能够更改ID。

表格1:

<form method="post" action="">
    <p style="margin-top: 70px;">Please type the ID of the person you wish to add to change their data</p>
    <p style="margin-bottom: 0px;">ID</p>
    <input style="color:black" type="text" name="id" placeholder="10001">
    <input style="color:lightblue;background-color: rgb(80,80,80);margin-top: 7px; " type="submit" value="Submit">
</form>

表格2:

<form method="post" action="">
    <p>New Information for Customer with ID entered above</p>
    <input style='color:black;' type='text' name='newName' placeholder='Name Change'>
    <input style="color:black;" type="text" name="newAddress" placeholder="New Address">
    <input style="color:lightblue;background-color: rgb(80,80,80);margin-top: 7px; " type="submit" name="submitForm2" value="Submit">
</form>

这是我当前要求的php,但它不起作用,检查值是否设置的$ _POST返回false。

<?php 
            session_start();
            if (isset($_POST["id"])){
                $servername = 'localhost';
                $user = 'root';
                $pass = '';
                $db = 'the_sports_store';
                $conn = new mysqli($servername,$user, $pass, $db);

                // Check connection
                if ($conn->connect_error) {
                    echo '<script language="javascript">';
                    echo 'alert("DB Connection Failed:")';
                    echo '</script>';
                    die("" . $conn->connect_error);
                } 

                $sessionID = $_SESSION["ID"];
                $newName = $_SESSION["newName"];
                $newAddress = $_SESSION["newAddress"];
                var_dump($newName);

                $sql = "SELECT * FROM `customers` WHERE ID='$sessionID';";


                //display the current record, allow user input to alter it, then display new data
                if ($conn->query($sql) == TRUE) {
                    echo"<div class='col-10'>";
                    echo"<table>";
                    echo"<tr>
                            <td align='justify'><b>ID</b></td>
                            <td align='justify'><b>NAME</b></td>
                            <td align='justify'><b>ADDRESS</b></td>
                         </tr>";
                    $result = mysqli_query($conn, $sql);
                    $row = mysqli_fetch_assoc($result);
                    echo "<tr><td style='padding: 10px;'>{$row['ID']}</td><td>{$row['NAME']}</td><td>{$row['ADDRESS']}</td></tr>";
                    echo "</table>";
                    echo "</div>";





                    if(!empty($_POST["newName"]) && !empty($_POST["newAddress"])){
                        echo '<script language="javascript">';
                        echo 'alert(',$sessionID,');';
                        echo '</script>';
                        $newName = $_POST["newName"];
                        $newAddress = $_POST["newAddress"];
                        $sqlChange = "UPDATE `customers` 
                                        SET `NAME` = '$newName', `ADDRESS` = '$newAddress' 
                                        WHERE `ID` = '$sessionID';";

                        if ($conn->query($sqlChange) === TRUE) {
                            echo '<script language="javascript">';
                            echo 'alert("Update Successful.")';
                            echo '</script>';
                        } else {
                            echo '<script language="javascript">';
                            echo 'alert("Error. Update Unsucessful.")';
                            echo '</script>';
                        }

                    }else if(!empty($_POST["newName"])){
                        $newName = $_POST["newName"];
                        $sqlChange = "UPDATE `customers` SET `NAME` = '$newName' WHERE `ID` =  '$sessionID'";
                        echo '<script language="javascript">';
                        echo 'alert(',$newName,');';
                        echo '</script>';

                        if ($conn->query($sqlChange) === TRUE) {
                            echo '<script language="javascript">';
                            echo 'alert("Update Successful.")';
                            echo '</script>';
                        } else {
                            echo '<script language="javascript">';
                            echo 'alert("Error. Update Unsucessful.")';
                            echo '</script>';
                        }
                    }else if(!empty($_POST["newAddress"])){
                        $newName = $_POST["newAddress"];
                        $sqlChange = "UPDATE `customers` SET `ADDRESS` = '$newAddress' WHERE `ID` =  '$sessionID'";

                        echo '<script language="javascript">';
                        echo 'alert(',$sessionID,');';
                        echo '</script>';

                        if ($conn->query($sqlChange) === TRUE) {
                            echo '<script language="javascript">';
                            echo 'alert("Update Successful.")';
                            echo '</script>';
                        } else {
                            echo '<script language="javascript">';
                            echo 'alert("Error. Update Unsucessful.")';
                            echo '</script>';
                        }
                    } else{
                        echo '<script language="javascript">';
                        echo 'alert(',$sessionID,');';
                        echo '</script>';
                    }
                }
                $conn->close();
            }

        ?>
冰蚁

您的问题是您的PHP代码仅在设置了id的情况下才会执行。因此,当您发布第二个表单时,代码将永远不会执行。

将此if(!empty($_POST["newName"]) && !empty($_POST["newAddress"]))和所有elseif / else移至初始if之外。

另外,我有义务向您介绍SQL注入以及如何避免它:如何防止PHP中的SQL注入?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么第二种方法比第一种方法慢?

为什么在一种形式的最后一个元素和第二种形式的第一个元素之间出现间隙?

从第一类型的第二非类型参数推导第一类型

width.find('。')适用于第一种情况,尽管使用相同的代码,但不适用于第二种情况

我正在寻找一种使用混色公式计算第二种颜色的算法

以第二种形式使用SerialPort

无法理解Foreach php的第二种形式

vb。净等待第二种形式关闭,然后继续

获取单元格的值并将其转换为第二种形式

从第二种形式填充DataGridView

根据第一种形式的结果显示第二种形式

第二类更改第一类,而无需返回或使用参考PHP OOP

如何将对象数据以第二种形式传递到文本框中进行编辑?

以第二种形式访问richtextbox

使用第二种形式将项目添加到C#中其他类的列表框中

在C#.net中打开第二种形式时如何停止第一种形式的功能

如何设置位置第二种形式取决于第一种形式?

如何使用GTM将第二种产品推入数据层

第二种CSS样式不能超越第一类

无法加载第二种形式的C#

没有JS的第二种形式目标?

使用CSS的双边框,一种应根据文本,第二种应为100%宽度

响应重定向未正确将变量发送为第二种形式

从第二种形式传递第二个参数?

react-bootstrap:验证不适用于第二种形式

第二种算法如何变得比第一种更有效,子阵列的右侧如何在第二种算法中移动?

第二种形式的数据是如何发送到表中的?

如何在 Wordpress 中使用仅搜索帖子的第二种形式?

PHP Form没有将变量传递给第二种形式