-1

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

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

我得到以前的标题值并通过 PHP 将其插入到字段中:

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

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

说如果标题是:

test"

它只会在浏览器中显示:

test

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

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

谢谢

4

3 回答 3

0
<input id="title" value="test""> <<<--- see the issue there?

你必须逃避你的报价:

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

所以在 PHP 中:

<input id="title" value="<?php echo htmlspecialchars($previousValue)?>">
于 2013-06-06T14:28:33.997 回答
0

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

于 2013-06-06T14:28:50.123 回答
0

您必须将引号替换为 html 实体,否则浏览器会认为您只是在尝试关闭 value 属性:

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

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

<input id="title" value="<?php echo htmlspecialchars($previousValue); ?>">
于 2013-06-06T14:32:24.973 回答