Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP多个表单,第二个表单使用第一个表单中的数据_Php_Html_Sql - Fatal编程技术网

PHP多个表单,第二个表单使用第一个表单中的数据

PHP多个表单,第二个表单使用第一个表单中的数据,php,html,sql,Php,Html,Sql,我试图首先获取一个ID来查询数据库,并将结果打印到表中(这一部分有效)。然后我想获取用户提供的id,并使用它使用PHP更新数据库中的信息。我想使用第二个表单上的输入作为更新数据库的值。 要更改的表是customers,它有ID、NAME、ADDRESS字段。我不希望用户能够更改ID 表格1: <form method="post" action=""> <p style="margin-top: 70px;">Please type the ID of the p

我试图首先获取一个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>

请键入要添加的人员的ID以更改其数据

ID

表格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>

上面输入ID的客户的新信息

这是我当前请求的php,但它不起作用,检查值是否设置的$u帖子返回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();
            }

        ?>

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

将此if
(!empty($\u POST[“newName”])和&!empty($\u POST[“newAddress”])
和下面的所有elseif/else移到初始if之外


另外,我觉得有义务通知您SQL注入以及如何避免它:

如果可能,请添加相关代码!对两个表单和“提交”按钮使用不同的名称。您的第二个表单中缺少一个“操作”。第二个表单位于发送操作的页面上。后来我把它们浓缩到一个页面上。但是它们在哪里发布呢?是不是只有一个页面,两个表单都会自己发布?它们已经在第一个if中了。我可以在那里使用session变量而不是仅仅检查ID是否设置了吗?我说了将它们移到第一个if之外。我不知道您是如何使用会话变量的,您是否真的在其他地方设置了它们?我使用会话变量来保存在第一个表单中输入的ID,因此当页面在提交时刷新时,我保留该值您是如何做到的?在哪里?我在任何地方都看不到像
$\u SESSION[“ID”]=$\u POST[“ID”]
这样的东西。如何设置会话变量:我知道这是一个安全问题,但仅仅连接到数据库就有帮助了!现在,我遇到了一个警报问题,该警报说更新成功,但更新没有发生。