PHP读取MySQL变量输出到HTML表单input框仅显示首个单词问题
问题原因
你的input标签value属性没有用引号包裹,当PHP输出的字符串包含空格时,浏览器会将空格后的内容判定为独立的HTML属性,不会计入value值。比如渲染后的代码为value=Asheesh Kumar时,浏览器仅会将Asheesh识别为value的取值,Kumar会被当作无效的自定义属性忽略,因此输入框只会显示第一个单词,该问题会在所有带空格的字段值上复现。
修复方案
为value属性添加双引号包裹,同时使用htmlspecialchars()函数对输出的变量做HTML转义,避免值中包含引号、尖括号等特殊字符时破坏页面结构,同时防范基础XSS风险。
修复后的代码如下:
<div class="col-md-4 "> <input type="text" class="form-control" id="name" name="name" value="<?php echo htmlspecialchars($Name); ?>"> </div>
注意事项
- 所有需要预填充值的表单字段(文本输入框、隐藏域、文本域等)都要按照上述规则编写,即可解决全字段显示不全的问题
- 给属性值加引号是HTML编写的基础规范,不止是value属性,所有包含特殊字符、空格的属性值都应该用引号包裹,避免出现解析异常
内容的提问来源于stack exchange,提问作者Asheesh Kumar
相关产品推荐
相关产品推荐

