2012-04-23 81 views
0

這可能是一個非常簡單的問題,但我無法弄清楚。我需要將包含特殊字符的值存儲到使用PHP的HTML隱藏字段中,例如5' 5''表示一個人的身高。如何使用PHP將特殊字符的值存儲到HTML隱藏字段

該值存儲在MySql數據庫中。我想是這樣的

echo "<input type='hidden' id='ed_your_height' name='hd_your_height' 
value=".html_entity_decode($your_heigth)."/>"; 

echo "<input type='hidden' id='ed_your_height' name='hd_your_height' 
value=".htmlentities($your_heigth)."/>"; 

,但它給了我在這兩種情況下的價值5',而不是5' 5''。我需要在下拉菜單中顯示這些值並執行一些比較。

如何將具有特殊字符的值存儲到HTML隱藏字段中然後(從數據庫中檢索)?

+0

'var_dump($ your_height);'告訴你什麼? – 2012-04-23 15:25:19

回答

0

使用htmlentities()html_entity_decode()以及正確的標誌。

在客戶端

<input type="text name="fieldname" value="<?php echo htmlentities($string, ENT_QUOTES, 'utf-8'); ?>"> 

在服務器端:

$string = html_entity_decode($_POST['fieldname'], ENT_QUOTES, 'UTF-8'); 
0

使用htmlspecialchars

value="<?=htmlspecialchars($string)?>" 

假設short_open_tag打開(壞)或者您使用PHP 5.4(良好)。否則,請使用完整的<?php echo表單。

PS:你之所以有問題的原因是因爲你沒有引用你的屬性 - 如果你使用瀏覽器的查看源選項,你會看到輸出是value=5' 5'',所以它被解釋爲'5和一個名爲5''的自定義布爾屬性。