2016-04-20 36 views
0

我填写完必要的东西后,表格仍然不会提交(或者重定向到我创建的“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> 

请帮帮忙!

+0

删除额外

标签。 – RJParikh

+0

我很困惑..为什么你有这么多的表单标签?此外,你永远不会关闭第一种形式。尝试删除所有其他表单标记并在呈现所有输入字段后关闭第一个表单。 –

回答

0

您的表单元素有两个名称属性...删除第1名的属性,它是NAME = “radio_array []”

更新你的插入查询:

$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注入

+0

问题是表单没有提交。用户在插入查询中没有问题。 – RJParikh

0

大声笑,你的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 
1

我们的HTML代码有点borked那里,这应该有助于解决它。

<!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攻击。