我的html中有这段代码。该字段可能包含特殊字符。
<tr id="p2" >
<td><strong>Tussenvoegsel:</strong></td>
<td><input type="text" name="familyname" width="120"></td>
</tr>
在后端我正确获取字段的值,特殊字符(双引号也)也正确插入到表的相应列中。
$familyname=JRequest::getVar('familyname');
$familyname=str_replace("\'","'","$familyname");
$familyname=str_replace("'","\'","$familyname");
我的问题是,当我进入表单的编辑页面时,所有特殊字符都在字段中正确显示但双重报价根本没有显示(注意:在数据库中列也是双引号)。我是什么我不见了?
答案 0 :(得分:0)
问题在于:
<input type="text" value="my value "with" quotes">
在属性值的双引号内生成值的双引号的无效HTML原因。 (正如您在上面突出显示的那样。)
所以你必须转义input
标签的双引号。使用htmlspecialchars()
。
textareas
中的双引号没有问题,因为内容位于开始标记和结束标记之间而不是属性中。
<textarea>Here are "double quotes" okay and have not to be escaped</textarea>