当我在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);
});
}
答案 0 :(得分:0)
答案 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 -> "</p>", 'ENT_NOQUOTES');
答案 4 :(得分:-1)
解码HTML的最佳方法是:
<script>
varTitle = $('<div />').html("Chris' corner").text();
alert(varTitle);
</script>