Php 表单提交后的空SQL

Php 表单提交后的空SQL,php,html,sql,Php,Html,Sql,我找了又找我找不到答案 我做了一个表格,很基本。不知何故,它没有提交最终数据。代码是 <form class="form" action="submit.php" method="post"> <table> <tr> <td>Team Name: </td> <td><input type="text" name="team"></td> </tr>

我找了又找我找不到答案 我做了一个表格,很基本。不知何故,它没有提交最终数据。代码是

<form class="form" action="submit.php" method="post">
   <table>
   <tr>             
<td>Team Name: </td>
<td><input type="text" name="team"></td>
</tr>
<tr>
<td>Captains xbox tag: </td>
<td><input type="text" name="cap"></td>
<tr>
<td>Captains E-mail:</td> 
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>Team Mates: </td>
<td><TEXTAREA name="teammates" rows="6" cols="50">
Please place each team member on a new line
   </TEXTAREA><br></td>
</tr>
<tr>
<td>Sub team mates: </td>
<td><TEXTAREA name="subs" rows="2" cols="50"></TEXTAREA></td>
</tr>
</table>
<p><input type="submit"></p>
</form>
那是表格

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "INSERT INTO tournament1 (team, teammates, cap, email, subs)
VALUES ('$_POST[team]','$_POST[cap]','$_POST[email]','$_POST[teammates]','$_POST[subs]')";

if ($conn->query($sql) === TRUE) {
    echo "Your team has been submitted Thankyou. You will be redirected back to the tournaments page Shortly";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>
我做错了什么?它将连接并执行某些操作,因为ID因其自动递增而填充。其他的都丢了。 提前谢谢各位
凯尔

所以我给你换了一点,但这应该很好

首先,在表格中,我为您添加了一个isset:

<form class="form" action="submit.php" method="post">
<table>
    <tr>
        <td>Team Name: </td>
        <td><input type="text" name="team"></td>
    </tr>
    <tr>
        <td>Captains xbox tag: </td>
        <td><input type="text" name="cap"></td>
    <tr>
        <td>Captains E-mail:</td>
        <td><input type="text" name="email"></td>
    </tr>
    <tr>
        <td>Team Mates: </td>
        <td><TEXTAREA name="teammates" rows="6" cols="50">
Please place each team member on a new line
   </TEXTAREA><br></td>
    </tr>
    <tr>
        <td>Sub team mates: </td>
        <td><TEXTAREA name="subs" rows="2" cols="50"></TEXTAREA></td>
    </tr>
</table>
<p><input type="submit" name="sendit"></p>
</form>

您的脚本可能会出现以下风险:查看使用2个echo中的哪一个时发生的情况在代码中添加错误报告,调试:如果您没有获得此连接失败,则表示您的连接正常,现在检查post值print\u r$\u post而不是echo您的查询并在php my admin中手动运行。您的列和值也不匹配。那么SQL注入呢?我还建议你优化你的代码,移动数组中的验证。如果Op熟悉PDO,我会用这种方式写出来,并为Op在每个代码中添加bindparam。但是mysql_*是不推荐的好调用!我会相应地调整。遗憾的是,Op还没有转移到PDO。我已经添加了,正如你所说的,当它提交时,它会重置页面,sql数据仍然没有被填充。伙计,我是个白痴
if (isset($_POST['sendit']))
{
    $team = $_POST['team'];
    $captain = $_POST['cap'];
    $email = $_POST['email'];
    $mates = $_POST['teammates'];
    $sub = $_POST['subs'];

    if (!empty($team))
    {
        if (!empty($captain))
        {
            if (!empty($email))
            {
                if (!empty($mates))
                {
                    if (!empty($sub))
                    {
                        $sql = "INSERT INTO `tournament1` (team, teammates, cap, email, subs) VALUES ('$team', '$mates', '$captain', '$email', '$sub')";

                        if ($conn->query($sql) === TRUE) {
                            echo "New record created successfully";
                        } else {
                            echo "Error: " . $sql . "<br>" . $conn->error;
                        }

                    } else {
                        echo "Please add subs..";
                    }
                } else {
                    echo "Please add mates..";
                }
            } else {
                echo "Please add captains email..";
            }
        } else {
            echo "Please add captains name..";
        }
    } else {
        echo "Please add team name..";
    }

}