我有一个在前端运行的PHP脚本。前端获取数据并将其输入SQL DB。在大多数情况下,它运行正常,但是某些字符会导致数据库中的条目为空。到目前为止,似乎|,/和\字符导致条目为空。下面是我将PHP数据插入SQL DB的PHP代码。我猜它是因为它没有正确消毒,但我无法弄清楚原因。
if (!empty($_POST['do'])) {
switch ($_POST['do']) {
case 'add':
if (empty($_POST['quote'])) {
break;
}
$quote = htmlspecialchars($_POST['quote']);
$quote = str_replace(" ", " ", $quote);
$quote = nl2br($quote);
if (ini_get("magic_quotes_runtime") or ini_get("magic_quotes_gpc")) {
$sql = "INSERT INTO ".$_qdbs['tpfx']."queue (id,quote) VALUES ('NULL', '".mysql_real_escape_string(stripslashes($quote))."')";
} else {
$sql = "INSERT INTO ".$_qdbs['tpfx']."queue (id,quote) VALUES ('NULL', '".mysql_real_escape_string($quote)."')";
}
$r = $db->_sql($sql);
print($tpl->fetch($tpl->tdir.'layout_header.tpl'));
print($tpl->fetch($tpl->tdir.'quote_added.tpl'));
print($tpl->fetch($tpl->tdir.'layout_footer.tpl'));
break;
}
}