所以我有一個看起來如此的表單。如何阻止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