【问题标题】:HTML source code being printed as raw data from databaseHTML 源代码被打印为数据库中的原始数据
【发布时间】:2016-06-12 08:41:53
【问题描述】:

我将 html 保存在我的数据库中,当我在我的视图中恢复此 html 时,我在浏览器中看到它就像是文本,而不是 html 标签。

例子:

我保存"<div><h1>Hello</h1></div>"

但是当我回显它时,浏览器会将标签打印为原始数据,而不是 HTML 标记。

【问题讨论】:

  • 不清楚如何解决这个问题......但是像 tinyMCE 这样的 WYSWYG 编辑器在这种情况下不会有帮助吗?
  • 在这种情况下它没有帮助,我希望看到 HTML 不是作为文本保存在我的数据库中,而是以它的创建目的:例如如果我保存

    hello

    我不想看到

    hello

    但标题“hello”
  • 如何保存这些数据?
  • 通过一个 ajax 帖子,我设置了一个包含 html ($(this).html()) 的 var,然后我将它发送给我的 PHP,然后我将它发送到数据库

标签: php html sql laravel


【解决方案1】:

我猜你会像 {{$string}} 一样回应它 这与e() function (PHP: htmlentities) 相同 为了在 Laravel Blade 中回显 html,像 {!! $string !!} 这样回显它以传递 HTML 干净

【讨论】:

    【解决方案2】:

    默认情况下,Blade {{ }} 语句会通过 PHP 的 htmlentities 函数自动发送,以防止 XSS 攻击。如果您不希望您的数据被转义,您可以使用以下语法:

    你好,{!! $name !!}

    【讨论】:

    • 它不起作用我没有看到标题我已经看到了文本中的html
    • 你能在问题中写下你的代码吗,你使用的是哪个版本的 laravel?
    • @if($new->type == 'header') {!! $new->contenu !!} @endif 我使用 Laravel 的最新版本
    • 比你这样做,因为在 laravel 5 和 5.1 中这是这样做的,而在 laravel 4.2 中是这样的 {{{ $name }}}
    • 是的,我读过,但我不明白为什么代码是在文本中看到的,而不是我想要的......
    【解决方案3】:

    我找到了我想要的!只要使用 htmlspecialchars_decode() 就可以了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      相关资源
      最近更新 更多