0

有人可以帮我解决这个问题。

我只是想显示来自用户的消息。消息从文本区域进入我的数据库。我的问题是,当我键入消息并将其格式化为分段时,它不会以该格式显示并将其显示为一个长段落。

像这样。

要更改文档的整体外观,请在“页面布局”选项卡上选择新的主题元素。要更改快速样式库中可用的外观,请使用更改当前快速样式集命令。\r\n\r\n主题库和快速样式库都提供重置命令,以便您始终可以将文档的外观恢复为当前模板中包含的原始外观。

我尝试使用 nl2br() 和 strip_tags() 但仍然没有运气

验证消息中的代码。

// Check for message
if ( !empty ( $_POST['message'])) {
    if ( mb_strlen ( $_POST['message'], 'UTF-8') <= 20 ) {
        $reg_errors['message'] = 'Your message must be greater than 20 characters';
    } else {
        $message = mysqli_real_escape_string($dbc, $_POST['message']);
    }   
} else {
    $reg_errors['message'] = 'Message: This field is required.';
}

这是我从数据库中选择消息时使用的代码

$message= $row['message'];
$message= nl2br(strip_tags($message));

当回显 $message 时,它​​会打印一个类似上面的段落。

4

2 回答 2

2

将数据添加到数据库时,您进行了过多的转义。
如果您使用准备好的语句,只需从代码中删除 mysqli_real_escape_string() 调用。
否则你会做两次——所以你必须找到它发生的地方并从你的代码中删除额外的 mysqli_real_escape_string() 调用。

于 2013-02-09T14:34:27.083 回答
0

据我了解,通过使用,mysqli_real_escape_string()您可以使其转义反斜杠,因此在交易时例如\r\n变成\\r\\n\\\\r\\\\n

  1. 字面反斜杠
  2. r
  3. 字面反斜杠
  4. n

因此,您可能希望在添加到数据库之前将它们替换为适当的字符。这样做您可以从各种内置函数中获取图片,例如preg_replace(), strtr(), str_replace()...</p>

于 2013-02-09T14:18:23.497 回答