【发布时间】:2017-12-26 19:30:41
【问题描述】:
如果我在数据库中写入输入 <b>,则写入 <b>。帮助。
输入代码:
$aprasymas = htmlentities(mysql_real_escape_string($_POST['aprasymas']));
mysql_query("INSERT INTO prekes (pavadinimas, kaina, aprasymas, nuotrauka, cover, kategorija, kiekis) VALUES ('$pavadinimas', '$kaina', '$aprasymas', '$nuotrauka', '$cover', '" . kategorijaid($kategorija) . "', '$kiekis')") or die(mysql_error());
【问题讨论】:
-
您需要了解转义的工作原理。为数据库调用
htmlentities毫无意义。 -
不要使用 mysql 函数。它们已被弃用且不安全。选择 mysqli 或其他 _PDO - php.net/manual/en/mysqlinfo.api.choosing.php
-
我已经看到很多人们想将 HTML 插入 MySQL 的问题,这让我头晕目眩。 HTML 是 HTML,MySQL 是 MySQL。您应该在输出中处理格式;完全是两种不同的动物。数据库用于数据,而不是用于格式化目的。
-
顺便说一句;甚至
mysql_real_escape_string()也容易注入 stackoverflow.com/a/12118602/1415724 - 最好使用带有准备好的语句的 mysqli 或 PDO api。
标签: php