我的表格没有提交

时间:2016-04-20 09:45:30

标签: php mysql

在我填写必要的东西之后,表单仍然不会提交(或重定向到我创建的“voted.php”以帮助我连接到数据库)。单选按钮正确点击,但它不仅仅是重定向。

这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Vote</title>
</head>

<body>

<h1>Please note that you only get to vote one time. Look carefully and make a wise choice.</h1> 

<form method="post" action="vote_process.php" >

<div class="section">
<strong>Matriculation Number:</strong> 
  <input type="text" size="30" maxlength="16" name="Reg_Num" /><br />
</div>
<p><p></p></p>



<div class="section">
  <form>
    <h3><strong>President:</strong></h3>
    <input type="radio" name="radio_array[]" value="Presi_1" name="President_1" />President 1
    <input type="radio" name="radio_array[]" value="Presi 2" name="President_2" />President 2
  </form>
</div>

<p></p><p></p>
<div class="section">
  <form>
    <h3><strong>Vice President:</strong></h3>
    <input type="radio" name="radio_array[]" value="VP1" name="Vice_President_1" />Vice President 1
    <input type="radio" name="radio_array[]" value="VP2" name="Vice_President_2" />Vice President 2
  </form>
</div>



<p></p><p></p>
<div class="section">
  <form>
    <h3><strong>Secretary General:</strong></h3>
    <input type="radio" name="radio_array[]" value="SecGen1" name="Secretary_General_1" />Secretary General 1
    <input type="radio" name="radio_array[]" value="SecGen2" name="Secretary_General_2" />Secretary General 2
  </form>
</div>


<p></p><p></p>
<div class="section">
  <form>
    <h3>Director of Finance:</h3>
    <input type="radio" name="radio_array[]" value="FinSec1" name="Finance_1" />Director of Finance 1
    <input type="radio" name="radio_array[]" value="FinSec2" name="Finance_2" />Director of Finance 2
  </form>
</div>


<p></p><p></p>
<div class="section">
  <form>
    <h3>Director of Software:</h3>
    <input type="radio" name="radio_array[]" value="Software1" name="Software_1" />Director of Software 1
    <input type="radio" name="radio_array[]" value="Software2" name="Software_2" />Director of Software 2
  </form>
</div>


<p></p><p></p>
<div class="section">
  <form>
    <h3>Assistant Secretary General:</h3>
    <input type="radio" name="radio_array[]" value="AssSecGen1" name="Assist_Sec_Gen_1" />Assistant Secretary General 1
    <input type="radio" name="radio_array[]" value="AssSecGen2" name="Assist_Sec_Gen_2" />Assistant Secretary General 2
  </form>
</div>


<p></p><p></p>
<div class="section">
  <form>
    <h3>Director of Information:</h3>
    <input type="radio" name="radio_array[]" value="Info1" name="Info_1" />Director of Information 1
    <input type="radio" name="radio_array[]" value="Info2" name="Info_2" />Director of Information 2
  </form>
</div>


<p></p><p></p>
<div class="section">
  <form>
    <h3>Director of Welfare:</h3>
    <input type="radio" name="radio_array[]" value="Welfare1" name="Welfare_1" />Director of Welfare 1
    <input type="radio" name="radio_array[]" value="Welfare2" name="Welfare_2" />Director of Welfare 2
  </form>
</div>

<p></p><p></p>
<div class="section">
  <form>
    <h3>Director of Sports:</h3>
    <input type="radio" name="radio_array[]" value="Sport1" name="Sports_1" />Director of Sport 1
    <input type="radio" name="radio_array[]" value="Sport2" name="Sports_2" />Director of Sport 2
  </form>
</div>


<p></p><p></p>
<div class="section">
  <form>
    <h3>Director of protocol:</h3>
    <input type="radio" name="radio_array[]" value="Protocol1" name="Protocol_1" />Director of Protocol 1
    <input type="radio" name="radio_array[]" value="Protocol2" name="Protocol_2" />Director of Protocol 2
  </form>
</div>



<p></p><p></p>
<div class="section">
  <form>
    <h3>Financial Secretary</h3>
    <input type="radio" name="radio_array[]" value="FinSec1" name="Fin_Sec_1" />Financial Secretary 1
    <input type="radio" name="radio_array[]" value="FinSec2" name="Fin_Sec_2" />Financial Secretary 2
  </form>
</div>

</div>
<p></p>
<input type="submit" name="submit" />

</body>

</html>

数据库连接器是:

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

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}


$sqli = "INSERT INTO `election`.`voted` (`Reg_Num`, `President_1`, `President_2`, `Vice_President_1`, `Vice_President_2`, `Secretary_General_1`, `Secretary_General_2`, `Finance_1`, `Finance_2`, `Software_1`, `Software_2`, `Assist_Sec_Gen_1`, `Assist_Sec_Gen_2`, `Info_1`, `Info_2`, `Welfare_1`, `Welfare_2`, `Sports_1`, `Sports_2`, `Protocol_1`, `Protocol_2`, `Fin_Sec_1`, `Fin_Sec_2`)
VALUES
('$_POST[Reg_Num]', '$_POST[President_1]', '$_POST[President_2]', '$_POST[Vice_President_1]', '$_POST[Vice_President_2]', '$_POST[Secretary_General_1]', '$_POST[Secretary_General_2]', '$_POST[Finance_1]', '$_POST[Finance_2]', '$_POST[Software_1]', '$_POST[Software_2]', '$_POST[Assist_Sec_Gen_1]', '$_POST[Assist_Sec_Gen_2]', '$_POST[Info_1]', '$_POST[Info_2]', '$_POST[Welfare_1]', '$_POST[Welfare_2]', '$_POST[Sports_1]', '$_POST[Sports_2]', '$_POST[Protocol_1]', '$_POST[Protocol_2]', '$_POST[Fin_Sec_1]', '$_POST[Fin_Sec_2]' );";

if ($conn->query($sqli) === TRUE) {
    echo "Voted Successfully";
} else {
    echo "Error: " . $conn->error;
}

?>  


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form</title>
</head>
<body>
<title>Form Submitted</title>
<p></p>
<p>Thanks for Voting.</p>
<p></p>
<p>Please note that you cannot vote two times</p>
<p></p>
<a href="registration.php">Another Voter</a><br />
</body>
</html>

请帮忙!

3 个答案:

答案 0 :(得分:1)

我们的HTML代码有点笨拙,这应该有助于解决它。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Vote</title>
</head>

<body>

<h1>Please note that you only get to vote one time. Look carefully and make a wise choice.</h1> 

<form method="post" action="vote_process.php" >

<div class="section">
<strong>Matriculation Number:</strong> 
  <input type="text" size="30" maxlength="16" name="Reg_Num" /><br />
</div>
<p><p></p></p>



<div class="section">

    <h3><strong>President:</strong></h3>
    <input type="radio" value="Presi_1" name="President_1" />President 1
    <input type="radio" value="Presi_2" name="President_2" />President 2

</div>

<p></p><p></p>
<div class="section">

    <h3><strong>Vice President:</strong></h3>
    <input type="radio" value="VP1" name="Vice_President_1" />Vice President 1
    <input type="radio" value="VP2" name="Vice_President_2" />Vice President 2

</div>



<p></p><p></p>
<div class="section">

    <h3><strong>Secretary General:</strong></h3>
    <input type="radio" value="SecGen1" name="Secretary_General_1" />Secretary General 1
    <input type="radio" value="SecGen2" name="Secretary_General_2" />Secretary General 2

</div>


<p></p><p></p>
<div class="section">

    <h3>Director of Finance:</h3>
    <input type="radio" value="FinSec1" name="Finance_1" />Director of Finance 1
    <input type="radio" value="FinSec2" name="Finance_2" />Director of Finance 2

</div>


<p></p><p></p>
<div class="section">

    <h3>Director of Software:</h3>
    <input type="radio" value="Software1" name="Software_1" />Director of Software 1
    <input type="radio" value="Software2" name="Software_2" />Director of Software 2

</div>


<p></p><p></p>
<div class="section">

    <h3>Assistant Secretary General:</h3>
    <input type="radio" value="AssSecGen1" name="Assist_Sec_Gen_1" />Assistant Secretary General 1
    <input type="radio" value="AssSecGen2" name="Assist_Sec_Gen_2" />Assistant Secretary General 2

</div>


<p></p><p></p>
<div class="section">

    <h3>Director of Information:</h3>
    <input type="radio" value="Info1" name="Info_1" />Director of Information 1
    <input type="radio" value="Info2" name="Info_2" />Director of Information 2

</div>


<p></p><p></p>
<div class="section">

    <h3>Director of Welfare:</h3>
    <input type="radio" value="Welfare1" name="Welfare_1" />Director of Welfare 1
    <input type="radio" value="Welfare2" name="Welfare_2" />Director of Welfare 2

</div>

<p></p><p></p>
<div class="section">

    <h3>Director of Sports:</h3>
    <input type="radio" value="Sport1" name="Sports_1" />Director of Sport 1
    <input type="radio" value="Sport2" name="Sports_2" />Director of Sport 2

</div>


<p></p><p></p>
<div class="section">

    <h3>Director of protocol:</h3>
    <input type="radio" value="Protocol1" name="Protocol_1" />Director of Protocol 1
    <input type="radio" value="Protocol2" name="Protocol_2" />Director of Protocol 2

</div>



<p></p><p></p>
<div class="section">

    <h3>Financial Secretary</h3>
    <input type="radio" value="FinSec1" name="Fin_Sec_1" />Financial Secretary 1
    <input type="radio" value="FinSec2" name="Fin_Sec_2" />Financial Secretary 2

</div>

</div>
<p></p>
<input type="submit" name="submit" />
</form>
</body>

</html>

由于您已经表明您只能投票一次,我建议您添加一些措施以防止同一表单被提交两次。

另外,为了帮助您调试PHP脚本中的已发布数据,下一段代码通常有助于检查发布的内容:

<?php
echo "<pre>";
print_r($_POST);
echo "</pre>;
?>

您希望在插入之前使用mysqli_real_escape_string并准备POST数据,以帮助防止MYSQL攻击。

答案 1 :(得分:0)

您的表单元素有两个名称属性...删除第一个名称属性,即name =&#34; radio_array []&#34;

更新您的插入查询:

$sqli = "INSERT INTO `election`.`voted` (`Reg_Num`, `President_1`, `President_2`, `Vice_President_1`, `Vice_President_2`, `Secretary_General_1`, `Secretary_General_2`, `Finance_1`, `Finance_2`, `Software_1`, `Software_2`, `Assist_Sec_Gen_1`, `Assist_Sec_Gen_2`, `Info_1`, `Info_2`, `Welfare_1`, `Welfare_2`, `Sports_1`, `Sports_2`, `Protocol_1`, `Protocol_2`, `Fin_Sec_1`, `Fin_Sec_2`)
VALUES
('".$_POST['Reg_Num']."', '".$_POST["President_1"]."', '".$_POST["President_2]."', '".$_POST["Vice_President_1"]'"......"; 
像这样.... 此外,你应该采取预防措施sql注入

答案 2 :(得分:0)

lol,您的input type="submit"按钮位于form的外部.....它应位于form标记内。除了不想一次提交所有输入字段外,还可以只创建一个表单而不是100个。

请记住,每个表单都需要一个提交按钮。否则它不会提交任何内容。

Read this

<form method="post" action="vote_process.php" >

<div class="section">
<strong>Matriculation Number:</strong> 
  <input type="text" size="30" maxlength="16" name="Reg_Num" /><br />
</div>
<p><p></p></p>

<div class="section">
    <h3><strong>President:</strong></h3>
    <input type="radio" name="radio_array[]" value="Presi_1" name="President_1" />President 1
    <input type="radio" name="radio_array[]" value="Presi 2" name="President_2" />President 2
</div>

<p></p><p></p>
<div class="section">
    <h3><strong>Vice President:</strong></h3>
    <input type="radio" name="radio_array[]" value="VP1" name="Vice_President_1" />Vice President 1
    <input type="radio" name="radio_array[]" value="VP2" name="Vice_President_2" />Vice President 2
</div>

<p></p><p></p>
<div class="section">
    <h3><strong>Secretary General:</strong></h3>
    <input type="radio" name="radio_array[]" value="SecGen1" name="Secretary_General_1" />Secretary General 1
    <input type="radio" name="radio_array[]" value="SecGen2" name="Secretary_General_2" />Secretary General 2
</div>

<p></p><p></p>
<div class="section">
    <h3>Director of Finance:</h3>
    <input type="radio" name="radio_array[]" value="FinSec1" name="Finance_1" />Director of Finance 1
    <input type="radio" name="radio_array[]" value="FinSec2" name="Finance_2" />Director of Finance 2
</div>

<p></p><p></p>
<div class="section">
    <h3>Director of Software:</h3>
    <input type="radio" name="radio_array[]" value="Software1" name="Software_1" />Director of Software 1
    <input type="radio" name="radio_array[]" value="Software2" name="Software_2" />Director of Software 2
</div>

<p></p><p></p>
<div class="section">
    <h3>Assistant Secretary General:</h3>
    <input type="radio" name="radio_array[]" value="AssSecGen1" name="Assist_Sec_Gen_1" />Assistant Secretary General 1
    <input type="radio" name="radio_array[]" value="AssSecGen2" name="Assist_Sec_Gen_2" />Assistant Secretary General 2
</div>

<p></p><p></p>
<div class="section">
    <h3>Director of Information:</h3>
    <input type="radio" name="radio_array[]" value="Info1" name="Info_1" />Director of Information 1
    <input type="radio" name="radio_array[]" value="Info2" name="Info_2" />Director of Information 2
</div>

<p></p><p></p>
<div class="section">
    <h3>Director of Welfare:</h3>
    <input type="radio" name="radio_array[]" value="Welfare1" name="Welfare_1" />Director of Welfare 1
    <input type="radio" name="radio_array[]" value="Welfare2" name="Welfare_2" />Director of Welfare 2
</div>

<p></p><p></p>
<div class="section">
    <h3>Director of Sports:</h3>
    <input type="radio" name="radio_array[]" value="Sport1" name="Sports_1" />Director of Sport 1
    <input type="radio" name="radio_array[]" value="Sport2" name="Sports_2" />Director of Sport 2
</div>

<p></p><p></p>
<div class="section">
    <h3>Director of protocol:</h3>
    <input type="radio" name="radio_array[]" value="Protocol1" name="Protocol_1" />Director of Protocol 1
    <input type="radio" name="radio_array[]" value="Protocol2" name="Protocol_2" />Director of Protocol 2
</div>

<p></p><p></p>
<div class="section">
    <h3>Financial Secretary</h3>
    <input type="radio" name="radio_array[]" value="FinSec1" name="Fin_Sec_1" />Financial Secretary 1
    <input type="radio" name="radio_array[]" value="FinSec2" name="Fin_Sec_2" />Financial Secretary 2
</div>

</div>
<p></p>
<input type="submit" name="submit" />
</form> <-- close it here