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