从php中的文本区域中挑选数据时出现反斜杠

时间:2011-11-04 09:59:40

标签: php validation

这就是我在做什么,

<?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 \'

我哪里错了?

3 个答案:

答案 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 - 这里没有用处。

不要在这种情况下使用它,问题就会消失。仅在将数据输入数据库时​​使用它。