反向filter_var函数

时间:2013-06-25 06:35:01

标签: php javascript jquery filter-var

当我在DB中输入信息时,我使用filter_var函数来保护我的数据库免受SQL注入:filter_var($visitor_name, FILTER_SANITIZE_SPECIAL_CHARS);因此,如果我输入,例如,O' Hara,在数据库中它& #39;存储为O'Hara。 当我从数据库中检索这些数据并将其输出为HTML时,一切正常,它显示为O' Hara。但是如果我想把它放在文本输入字段中进行编辑,我就像在数据库中看到它一样 - 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);
    });
}

5 个答案:

答案 0 :(得分:0)

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

html_entity_decode($a);

或与phpjs

的javascript中的OR

html_entity_decode using phpjs

答案 1 :(得分:0)

也许尝试使用decodeURI()?如果你想在Javascript中这样做。在PHP中我不知道如何解码它。

答案 2 :(得分:0)

使用htmlspecialchars_decode

例如

 $clean_string = htmlspecialchars_decode($db_string);

答案 3 :(得分:0)

您可以使用:html_entity_decode()更全面的htmlspecialchars_decode()版本(IN 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');

答案 4 :(得分:-1)

解码HTML的最佳方法是:

<script>

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

alert(varTitle);

</script>