以下是我正在使用的代码
if (!empty($_REQUEST['content'])&&!empty($_REQUEST['title'])&&!empty($_REQUEST['writer'])) {
$title = $_POST['title'];
$content = $_POST['content'];
$writer = $_POST['writer'];
require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
$pure_content = $purifier->purify($content);
$entity_content = htmlentities($pure_content);
$entity_content = mysql_real_escape_string($entity_content);
mysql_query("INSERT INTO stories (TITLE, WRITER, CONTENT, UPVOTE, DOWNVOTE) VALUES ('$title', '$writer', '$content', 0, 0)");
现在,经过一些测试后,每当我输入一个撇号时,我就会发现这些值不会插入到表格中。我该如何防止这种情况?是否有任何其他特殊字符可能会导致此问题。 以下是我的工作:http://8mags.com/bored/people/
修改
我更新了这两行代码
$add_content = "INSERT INTO stories (TITLE, WRITER, CONTENT, UPVOTE, DOWNVOTE) VALUES ('$title', '$writer', '$content', 0, 0)";
$result = mysqli_query($mysqli, $add_content) or die(mysqli_error($mysqli));
还有什么需要改变吗?
第二次更新
我也改变了这段代码
$con = mysqli_connect($db_hostname,$db_username,$db_password);
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
mysqli_select_db($db_database, $con);
还有别的吗?谢谢你的帮助。
答案 0 :(得分:0)
你只需要在插入时加上它。
$title = addslashes($_POST['title']);
$content = addslashes($_POST['content']);
$writer = addslashes($_POST['writer']);
在演出时(上市)
stripslashes($VariableName)
希望这对你有所帮助。