【发布时间】:2018-07-16 20:47:55
【问题描述】:
我有一个名为 cashreg 的 MySQL 表,它只有一行也称为 cashreg,并设置为 VARCHAR 64 和 utf8_general_ci。问题是在使用这种形式时:
<td>
<input placeholder="<?php echo SETTINGS_NEWCASHIER; ?>" class="form-control floating-label" name="newCashregInput" id="newCashreg" /></br>
<input style="width: 100%;" class="btn btn-success waves-effect waves-light" type="submit" name="newCashreg" id="newCashreg" align="right" value="Pridėti kasos aparatą"></input>
</td>
和
if(isset($_POST['newCashreg'])) {
mysql_query("INSERT INTO ".$table['cashreg']." VALUES (".$_POST['newCashregInput'].")");
}
如果值仅由数字组成,例如“984133”且无法添加例如“851fff”、“gsdagsd”、“fsdfas521”,则可以将此表单中的数据添加到表中
【问题讨论】:
-
SQL注入漏洞警告,修复你的代码使用prepared statements
-
停止使用 mysql_query,使用 PDO 或 mysqli。开始使用准备好的语句,永远不要将用户输入 ($_POST) 直接放入查询中。当您的查询失败时,Mysql 会报告错误,请在来这里之前收集这些错误。
-
它是关闭和旧项目,所以我使用mysql_query