所以我有一个看起来如此的表单。如何阻止PHP向MYSQL数据库添加空白行/字段
<form action="thanks.php" method="post" class="niceform" name="myform">
<table>
<tr>
<td><label for="company_name">Company Name</label></td>
<td><input type="text" name="company" value="" size="38" /></td>
</tr>
// and so on
我验证了javascript。但问题是,当我直接从localhost/mysite/form/thanks.php直接访问thanks.php时,我在查看phpmyadmin时插入了一个空行。 Thanks.php看起来像这样。
<?php
// open the connection
$conn = mysql_connect("localhost", "root", "password");
// pick the database to use
mysql_select_db("company_register",$conn);
$sql = "INSERT INTO `tblsignups` VALUES ('NULL', '$_POST[company]', '$_POST[email]', '$_POST[phone]', '$_POST[address]', '$_POST[comments]', '$_POST[contact_person]')";
$result = mysql_query($sql, $conn) or die(mysql_error());
mysql_close($conn);
?>
// And I have a thank you msg I display
我如何检查,如果某些人应该直接去thanks.php我告诉他们先去填写表格,不要把任何数据库
面点,你需要开始尝试将它们插入到数据库之前,您消毒POST变量。 –
详细说明一下,你的数据库受到了所谓的“SQL注入”的限制。由于构建查询字符串的方式,有人可以很容易地擦除整个数据库。相反,请尝试使用准备好的声明:http://www.php.net/manual/en/class.mysqli-stmt.php –
谢谢JonStirling。但更重要的是@SkyKelsey我很欣赏这个解释。我将搜索卫生Mysql/Php的最佳实践并相应地修改我的代码! – Anele