我有一个用户可以编辑的表单。
表单的一部分是标题字段。
我得到以前的标题值并通过 PHP 将其插入到字段中:
<input id="title" value=".$previousValue.">
问题是,当标题中有“”时。
说如果标题是:
test"
它只会在浏览器中显示:
test
在元素检查中,“PHP 没有任何问题。
谁能告诉我如何让报价显示在浏览器上?
谢谢
<input id="title" value="test""> <<<--- see the issue there?
你必须逃避你的报价:
<input id="title" value="test"">
所以在 PHP 中:
<input id="title" value="<?php echo htmlspecialchars($previousValue)?>">
htmlspecialchars($your_variable)
输出到 html时应始终使用。"
这将对像,等字符进行编码>
,这样它们就不会破坏 html。
您必须将引号替换为 html 实体,否则浏览器会认为您只是在尝试关闭 value 属性:
<input id="title" value="<?php echo str_replace('"', '"', $previousValue); ?>">
编辑:或者,正如其他人正确指出的那样,您可以使用一个快捷方式来捕捉其他情况:
<input id="title" value="<?php echo htmlspecialchars($previousValue); ?>">