【问题标题】:Display plain text(not rendering html syntax) in laravel在 laravel 中显示纯文本(不呈现 html 语法)
【发布时间】:2015-12-02 14:47:24
【问题描述】:

目前我使用数据库来存储用户键入的所有数据(描述、名称等)(用户可以自行生成内容)

然而,我的网站被懂 html 的人“劫持”了。 假设在描述中,他们输入了

<a href="http://hijack.comhijack">abc</a>

放链接:

我的 Larvel 视图中的代码是 {{$site-&gt;description}}

如何限制它们像纯文本一样显示?

Tt 会弄乱我的页面,当我把我的描述放在元属性中时,它会弄乱..

有什么解决办法吗?

【问题讨论】:

  • 您必须对数据进行 HTML 转义。如果您使用刀片,请使用三重花括号:{{{ $site-&gt;description }}}
  • 您是在谈论从用户输入中转义HTML 吗?
  • @WesleyMurch 谢谢,我希望断线如何保留(不转义)
  • @WereWolf-TheAlpha 呀。逃跑,我不知道怎么说。对不起。
  • 如果您将用户提交的数据保存到数据库中,那么该字段的验证将保护您并且对输入进行清理 (AFAIK)。

标签: html laravel


【解决方案1】:

在 Laravel 5 中,双花括号现在会自动转义字符串中的所有 HTML。

更多信息:Blade templating


如果您仍在使用 Laravel 4,请使用三重花括号而不是双花括号,这将转义字符串中的所有 HTML:

{{{ $site->description }}}

【讨论】:

    【解决方案2】:

    无需为此使用任何刀片语法,只需使用普通 PHP:

    <?php echo $site->description; ?>
    

    我是 Laravel 新手,正在寻找刀片解决方案,但这对我有用,似乎是最简单的解决方案

    【讨论】:

      【解决方案3】:

      你可以试试:

      {!! $site->description !!}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多