PHP:同时理解 POST 和 GET 时遇到困难

标签 php html mysql

我有一个网页,我在其中询问用户输入,当他单击“添加”按钮时,它应该将用户的输入插入到数据库中。我一直以为不能同时使用POST和GET但是根据thisthis回答应该是可以的。然而,我似乎无法让他们的解决方案发挥作用。

该脚本会在数据库中插入一些内容(生成一个 id),但 seriesName 字段仍为空。

PHP 脚本:

<?php
$con=mysqli_connect("localhost","user","passwd","database");

// Check connection

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$issueSeries = mysqli_real_escape_string($con, $_GET['addSeries']);

mysqli_query($con,"INSERT INTO series (seriesName) VALUES ('$issueSeries')");

mysqli_close($con);
?>

HTML:

<div id="issueAddInformationLayout">
    <div id="issueAddCredits">
        <form action="addIssue.php" method="post">
            <table>
                <tr id="lblAddCreator">
                    <td><p>NR</p></td>
                    <td><p>Series</p></td>
                    <td><p>Volume</p></td>
                    <td><p>Title</p></td>
                    <td><p>Publisher</p></td>
                </tr>
                <tr>
                    <td><input type="text" id="addNR" size="3%"/></td>
                    <td><input type="text" id="addSeries" size="25%" /></td>
                    <td><input type="text" id="addVolume" size="25%" /></td>
                    <td><input type="text" id="addTitle" size="30%" /></td>
                    <td><input type="text" id="addPublisher" size="30%" /></td>
                </tr>
            </table>
            <table>
                <tr id="lblAddCreator">
                    <td><p>Writer</p></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr id="txtAddCreator">
                    <td><input type="text" id="addWriter1" size="30%" /></td>
                    <td><input type="text" id="addWriter2" size="30%" /></td>
                    <td><input type="text" id="addWriter3" size="30%"/></td>
                    <td><input type="text" id="addWriter4" size="30%"/></td>
                </tr>
                <tr id="lblAddCreator">
                    <td><p>Editor</p></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr id="txtAddEditor">
                    <td><input type="text" id="addEditor1" size="30%" /></td>
                    <td><input type="text" id="addEditor2" size="30%"/></td>
                    <td><input type="text" id="addEditor3" size="30%"/></td>
                    <td><input type="text" id="addEditor4" size="30%"/></td>
                </tr>
                <tr id="lblAddCreator"> 
                    <td><p>Letterer</p></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr id="txtAddLetterer">
                    <td><input type="text" id="addLetterer1" size="30%"/></td>
                    <td><input type="text" id="addLetterer2" size="30%"/></td>
                    <td><input type="text" id="addLetterer3" size="30%"/></td>
                    <td><input type="text" id="addLetterer4" size="30%"/></td>
                </tr>
                <tr id="lblAddCreator">
                    <td><p>Colourist</p></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr id="txtAddColourist">
                    <td><input type="text" id="addColourist1" size="30%"/></td>
                    <td><input type="text" id="addColourist2" size="30%"/></td>
                    <td><input type="text" id="addColourist3" size="30%"/></td>
                    <td><input type="text" id="addColourist4" size="30%"/></td>
                </tr>
                <tr id="lblAddCreator">
                    <td><p>Cover Artist</p></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr id="txtAddCoverArtist">
                    <td><input type="text" id="addCoverArtist1" size="30%"/></td>
                    <td><input type="text" id="addCoverArtist2" size="30%"/></td>
                    <td><input type="text" id="addCoverArtist3" size="30%"/></td>
                    <td><input type="text" id="addCoverArtist4" size="30%"/></td>
                </tr>
                <tr id="lblAddCreator">
                    <td><p>Inker</p></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr id="txtAddInker">
                    <td><input type="text" id="addInker1" size="30%"/></td>
                    <td><input type="text" id="addInker2" size="30%"/></td>
                    <td><input type="text" id="addInker3" size="30%"/></td>
                    <td><input type="text" id="addInker4" size="30%"/></td>
                </tr>
                <tr id="lblAddCreator">
                    <td><p>Penciler</p></td>
                    <td></td>
                    <td></td>
                    </tr>
                <tr id="txtAddPenciler">
                    <td><input type="text" id="addPenciler1" size="30%"/></td>
                    <td><input type="text" id="addPenciler2" size="30%"/></td>
                    <td><input type="text" id="addPenciler3" size="30%"/></td>
                    <td><input type="text" id="addPenciler4" size="30%"/></td>
                </tr>
                <tr id="lblAddCreator">
                    <td><p>Trade Paper Back</p></td>
                    <td><p id="lblAddCover">Cover</p></td>
                </tr>
            </table>
            <table>
                <tr id="txtAddTPB">
                    <td><input type="text" id="addTPB" size="30%"/></td>
                    <td>
                        <p id="btnAddCover" enctype="multipart/form-data" action="parse_file.php" method="post"> 
                            <input type="file" name="uploaded_file">
                        </p>
                    </td>
                    <td>
                        <id="btnAddIssue"><input type="submit" value="Add">
                    </td>
                </tr>
            </table>
        </form>
    </div>
</div>
<小时/>

HTML 似乎有些困惑,因此我添加了完整的 HTML 代码。请记住:这纯粹是为了我自己,我并不真正关心表格是否过时之类的东西:)

最佳答案

在 HTTP 中,您不能同时使用 GET 和 POST,但您可以发出将查询字符串作为 URL 一部分的 POST 请求。

即使请求是 POST 请求,PHP 也会使用请求正文填充 $_POST 并使用查询字符串填充 $_GET

由于表单是 POST,输入的数据将被放入正文中,而不是查询字符串(因此将出现在 $_POST 中,而不是 $_GET)。

如果 addSeries 的值固定,那么您可以将其与 $_GET 一起使用,如下所示:

 <form id="btnAddIssue" action="addIssue.php?addSeries=someValue" method="post">

...但由于您正在获取用户输入,因此在将输入放入表单后,请使用 $_POST 读取值。

关于PHP:同时理解 POST 和 GET 时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23759282/

相关文章:

php - FullCalendar - 限制范围

PHP 查询字符串 - 参数重复

javascript - 隐藏未输入的结果的搜索栏

html - 如何在三 Angular 形div中插入图像?

css - 如何将元素发送到后台

mysql - 无法连接MySQL服务器错误111

PHP:子类静态继承 - 子类共享静态变量?

php - SELECT COUNT if 语句

MySql:为存档引擎创建表,强制 auto_increment

mysql - 10 亿个唯一字符串,同时插入数百万个