【问题标题】:How to store values with the special characters into HTML hidden fields using PHP如何使用 PHP 将具有特殊字符的值存储到 HTML 隐藏字段中
【发布时间】:2012-04-23 15:23:09
【问题描述】:

这可能是一个非常简单的问题,但我无法弄清楚。我需要使用 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 隐藏字段中(从数据库中检索)?

【问题讨论】:

  • var_dump($your_height); 告诉你什么?

标签: php


【解决方案1】:

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');

【讨论】:

    【解决方案2】:

    使用htmlspecialchars

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

    假设 short_open_tag 开启(错误)或者您使用的是 PHP 5.4(良好)。否则,请使用完整的 &lt;?php echo 表单。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多