【发布时间】:2018-10-02 20:28:42
【问题描述】:
我正在尝试从用户那里获取一些信息,例如命名期中最终成绩并将它们发布到我使用 MySQL 服务器的数据库中。 问题是当我按下 Add to DD 按钮时,没有任何变化,数据也没有进入我的数据库表中。
这是我的主要代码:
<html>
<body>
<table border ="1">
<tr>
<td>Name</td>
<td><input id="name"> </input></td>
</tr>
<tr>
<td>Midterm</td>
<td> <input id="midterm"> </input></td>
</tr>
<tr>
<td>Final</td>
<td> <input id="final"> </input></td>
</tr>
<tr>
<td>Grade</td>
<td> <input id="grade"> </input></td>
</tr>
<td><input type="button" onclick="calculate()" value="Calculate"></td>
<td> <input type="submit" value="Add to DB"> </td>
</tr>
</table>
</body>
<script type="text/javascript">
function calculate(){
var mid=document.getElementById('midterm').value;
var fin=document.getElementById('final').value;
var grade=mid*(0.3)+fin*(0.7);
document.getElementById('grade').value=grade;
}
</script>
</html>
这也是插入数据的代码:
<html>
<body>
<form method="get" action="grade.php">
<input type="text" value="Welcome to Student Grades Calculator">
<br>
<input type="submit" value="GO">
</form>
</body>
</html>
<?php
$name=$_POST['name'];
$midterm=$_POST['midterm'];
$final=$_POST['final'];
$grade=$_POST['grade'];
echo 'Hey';
$connect= mysql_connect('localhost','root','','test');
if(mysqli_connect_errno())
{
echo "Failed to connect to MySQL:".mysql_connect_errno();;
}
$s = "INSERT INTO(name,midterm,final,grade) VALUES('rr','33','33','33')";
$sql = "INSERT INTO(name,midterm,final,grade) VALUES ('$name','$midterm','$final','$grade')";
mysqli_query($connect , $sql);
mysqli_close($connect);
?>
【问题讨论】:
-
您的代码容易受到SQL injection 攻击。您应该使用mysqli 或PDO 带有绑定参数的预准备语句,如this post 中所述。
-
你为什么要把
mysql和mysqli混在一起? -
虽然我同意@Dominik(看看htmlentities),但将表单方法更改为
post而不是get。 -
首先你应该给每个字段输入名称,然后你可以从表单中获取数据
标签: php jquery html mysql post