这就是我在做什么,
<?php
if(isset($_POST['submit'])){
$text_area= mysqli_real_escape_string($dbc, strip_tags(trim($_POST['text_area'])));
echo $text_area;
}
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<input type="textarea" name="text_area" style="width:280px;height:90px" id="myTextarea" />
<input type="submit" name="submit" Value="Submit"/>
</form>
但每当我尝试插入这样的东西:“Hello World”或“Hello World”时,它会输出:\“Hello World \”或\'Hello world \'
我哪里错了?
答案 0 :(得分:1)
那是因为您使用mysql-real-escape-string功能。在显示数据之前,请对数据使用stripslashes功能以删除斜杠。
答案 1 :(得分:0)
似乎您正在输出mysqli_real_escape_string
方法中的值,该方法会转义SQL查询的字符串值以避免SQL注入。如果你只想输出输入到textarea中的任何内容,那么你可以纯粹显示$ _POST数组中的值,但是如果你不进行任何检查,请注意你很容易成为输入某些javascript等的人的受害者。它出现在页面上。
例如,只输出您发送到服务器的纯文本。
trim($_POST['text_area'])
然后您可以在构建查询时再次调用mysqli_real_escape_string
以使字符串安全并避免一些常见攻击。
答案 2 :(得分:0)
您错误地使用了mysqli_real_escape_string
- 这里没有用处。
不要在这种情况下使用它,问题就会消失。仅在将数据输入数据库时使用它。