当php变量包含空格(如多词字符串)时,若未对``的`value`属性值添加引号并转义特殊字符,浏览器会截断只取第一个单词;需用双引号包裹`value`属性,并使用`htmlentities()`防止xss及解析错误。
在PHP中动态生成HTML表单时,一个常见却容易被忽视的问题是:当变量(如 $dna = "Haus Maus";)包含空格或特殊字符时,直接将其拼入 标签的 value 属性会导致HTML解析失败。例如:
"; ?>
浏览器实际接收到的是:
由于 value=Haus Maus 缺少引号,HTML解析器将 Maus 视为另一个属性(如 Maus=""),最终仅显示 "Haus" 作为输入框内容。
✅ 正确做法是:
优化后的代码如下:
Deutscher Name name="dname" value="= htmlentities($dna, ENT_QUOTES, 'UTF-8') ?>" size="50" maxlength="50" >
? 关键说明:
⚠️ 注意事项:
遵循以上规范,即可确保任意长度、含空格、含符号甚至含HTML片段的字符串,都能完整、安全、准确地呈现于文本输入框中。