2013-11-15 48 views
0

我有這段代碼在我的html.the字段可能包含特殊字符。雙引號沒有顯示在編輯頁面

<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

在你的代碼片段中,你有兩次調用'str_replace()'。第一個用'''替換'\'',但第二個將它們交換回來。爲什麼? – 2013-11-15 07:37:32

+0

@MikeW避免意外插入'\' –

回答

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> 
+0

完美:)謝謝..將接受答案。 –