0

我的 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");

我的问题是,当我转到表单的编辑页面时,所有特殊字符都在字段中正确显示,但双引号根本没有显示(注意:在数据库中,该列也是双引号)。我错过了什么?

4

1 回答 1

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>
于 2013-11-15T07:38:40.617 回答