0

当我在数据库中输入信息时,我正在使用 filter_var 函数来保护我的数据库免受 SQL 注入:filter_var($visitor_name, FILTER_SANITIZE_SPECIAL_CHARS);因此,例如,如果我在数据库中输入 O'Hara,它将存储为O'Hara. 当我从数据库中检索这些数据并将其输出为 HTML 时,一切正常,显示为 O'Hara。但是如果我想把它放在一个文本输入字段中进行编辑,我看到它就像在 DB - 中一样O'Hara。那么我怎样才能扭转 filter_var 动作,所以在输入字段中我也会正常看到它,如 O'Hara?

这是我用来检索数据的代码:

function edit_visitor(visitor_id)
{
    $.getJSON("inc/API.php",
    {
        command : "get_visitor_by_id",
        visitor_id : visitor_id
    }, function(result){
        $("#edt_visitor_name").attr('value', result[0].visitor_name);
        $("#edt_visitor_identity_num").attr('value', result[0].visitor_identity_num);
        $("#edt_visitor_phone").attr('value', result[0].visitor_phone);
        $("#edt_visitor_email").attr('value', result[0].visitor_email);
        $("#edt_visitor_event_date").attr('value', result[0].visitor_event_date);
    });
}
4

5 回答 5

0

使用html_entity_decode inPHP将所有 HTML 实体转换为其适用的字符

html_entity_decode($a);

phpjs或在带有库的 javascript 中

html_entity_decode 使用 phpjs

于 2013-06-25T06:39:55.180 回答
0

也许尝试使用decodeURI()?如果您想在 Javascript 中执行此操作。在 PHP 中我不知道如何解码它。

于 2013-06-25T06:39:58.977 回答
0

利用htmlspecialchars_decode

例如

 $clean_string = htmlspecialchars_decode($db_string);
于 2013-06-25T06:40:22.963 回答
0

您可以使用: html_entity_decode() 更全面的 htmlspecialchars_decode() 版本(在 PHP 中)。

在 JavaScript 中:

function htmlspecialchars_decode(string, quote_style) {  
   var histogram = {}, symbol = '', tmp_str = '', entity = '';  
   tmp_str = string.toString();  

   if (false === (histogram = get_html_translation_table('HTML_SPECIALCHARS', quote_style))) {  
       return false;  
   }  

   // & must be the last character when decoding!  
   delete(histogram['&']);  
   histogram['&'] = '&';  

   for (symbol in histogram) {  
       entity = histogram[symbol];  
       tmp_str = tmp_str.split(entity).join(symbol);  
   }  

   return tmp_str;  

}

How to use: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');

于 2013-06-25T06:41:32.107 回答
-1

解码 HTML 的最佳方法是:

<script>

varTitle = $('<div />').html("Chris&apos; corner").text();

alert(varTitle);

</script>

于 2013-06-25T08:33:56.050 回答