0

这可能是一个非常简单的问题,但我无法弄清楚。我需要使用 PHP 将一些包含特殊字符的值存储到 HTML 隐藏字段中,例如5' 5''指示人的身高。

该值存储在 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 隐藏字段中(从数据库中检索)?

4

2 回答 2

0

使用htmlspecialchars.

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

假设 short_open_tag 处于打开状态(坏)或者您使用的是 PHP 5.4(好)。否则,请使用完整<?php echo表格。

PS:首先你遇到问题的原因是因为你没有引用你的属性 - 如果你使用浏览器的 View Source 选项,你会看到输出是value=5' 5''这样的,它被解释为一个值'5和一个自定义布尔属性称为5''

于 2012-04-23T15:27:33.660 回答
0

使用htmlentities()andhtml_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');
于 2012-04-23T15:25:44.973 回答