【问题标题】:Form Input Values and Quote Symbols [duplicate]表单输入值和报价符号[重复]
【发布时间】:2013-06-06 14:26:53
【问题描述】:

我有一个用户可以编辑的表单。

表单的一部分是标题字段。

我得到之前的title值并通过PHP将它插入到字段中:

<input id="title" value=".$previousValue.">

问题是,当标题中有“”时。

如果标题是:

test"

它只会在浏览器中显示:

test

在元素检查中,“PHP 没有任何问题。

谁能告诉我如何让报价显示在浏览器上?

谢谢

【问题讨论】:

  • 查看线程/问题,例如this ;)

标签: php html


【解决方案1】:

你必须用html实体替换引号,否则浏览器会认为你只是试图关闭value属性:

<input id="title" value="<?php echo str_replace('"', '&quot;', $previousValue); ?>">

编辑: 或者,正如其他人正确指出的那样,您可以使用也可以捕获其他情况的快捷方式:

<input id="title" value="<?php echo htmlspecialchars($previousValue); ?>">

【讨论】:

  • .... 这不是您从 PHP 中回显 html 代码中的字符串的方式....
  • 是的,抱歉,复制粘贴错误。固定。
  • :-D @DerekHendersonnnnnn
【解决方案2】:
<input id="title" value="test""> <<<--- see the issue there?

你必须转义你的引号:

<input id="title" value="test&quot;">

所以在 PHP 中:

<input id="title" value="<?php echo htmlspecialchars($previousValue)?>">

【讨论】:

    【解决方案3】:

    当您输出到 html 时,您应该始终使用htmlspecialchars($your_variable)。这将对"&gt;等字符进行编码,这样它们就不会破坏html。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 2020-04-22
      • 1970-01-01
      • 2011-06-02
      • 2012-08-12
      相关资源
      最近更新 更多