所以我的代码看起来像这样。如果提交不成功,我希望在表单中输入的文本留在表单中。但是如果我在代码中输入‘(撇号),而代码没有被成功提交,输入看起来像这样,带有一个反斜杠。。所以我得到的是。怎么了?我真的不想让输入显示转义字符。但我也需要那个mysql_real_escape_string,这样黑客就不会入侵我的数据库了。请给我建议。
<?php
$title = sanitize($_POST['title']);
$description = sanitize($_POST['description']);
?>
<?php
function sanitize($data) {
return htmlentities(strip_tags(mysql_real_escape_string($data)));
}
?>
<form action="form.php" method="post" enctype='multipart/form-data'>
<input type="text" name="title" class="text-3" value="<?php echo $title; ?>" />
<textarea maxlength="1000" id="textarea" name="description" ><?php echo $description; ?></textarea><br>
<input type="submit" value="8. Submit" id="submit" name="submit" />
</form>
发布于 2015-07-22 18:45:28
这两个函数应该(几乎)处理HTML和MySQL之间的所有事情
当你想以超文本标记语言输出一些东西时,使用htmlspecialchars($value, ENT_QUOTES)
当您想要在DB中保存某些内容时,请使用mysql_real_escape_string($value)
正如你所看到的,当你使用LIKE时,mysql_real_escape_string
不会自动转义%
和_
,你需要通过替换手动转义它们。
https://stackoverflow.com/questions/31560113
复制相似问题