Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 反向滤波函数_Php_Javascript_Jquery_Filter Var - Fatal编程技术网

Php 反向滤波函数

Php 反向滤波函数,php,javascript,jquery,filter-var,Php,Javascript,Jquery,Filter Var,当我在数据库中输入信息时,我使用一个filter\u var函数来保护我的数据库不受SQL注入的影响:filter\u var$visitor\u name,filter\u SANITIZE\u SPECIAL\u CHARS;因此,如果我输入,例如,O'Hara,在DB中,它存储为O&39;哈拉。 当我从数据库中检索这些数据并将其输出为HTML时,一切正常,显示为O'Hara。但是如果我想把它放在一个文本输入字段中进行编辑,我会像在DB-O&39;哈拉。那么,我怎样才能在某种程度上逆转fil

当我在数据库中输入信息时,我使用一个filter\u var函数来保护我的数据库不受SQL注入的影响:filter\u var$visitor\u name,filter\u SANITIZE\u SPECIAL\u CHARS;因此,如果我输入,例如,O'Hara,在DB中,它存储为O&39;哈拉。 当我从数据库中检索这些数据并将其输出为HTML时,一切正常,显示为O'Hara。但是如果我想把它放在一个文本输入字段中进行编辑,我会像在DB-O&39;哈拉。那么,我怎样才能在某种程度上逆转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);
    });
}
在PHP中使用将所有HTML实体转换为其适用的字符

html_entity_decode($a);
或者在带有phpjs库的javascript中

也许试着用一下?如果您想在Javascript中实现这一点。在PHP中,我不知道如何解码。

使用htmlspecialchars\u解码

比如说

 $clean_string = htmlspecialchars_decode($db_string);

您可以使用:html\u entity\u decode在PHP中对htmlspecialchars\u decode的更全面版本进行解码

在JavaScript中:

}


如何使用:htmlspecialchars\u decodethis-

,“entnoquotes”

解码HTML的最佳方法是:

varTitle=$.htmlChris'corner.text

标题


我试过这样做:htmlspecialchars\u decodejson\u encodeselectSELECT*来自myTbl,其中visitor\u id=$str\u visitor\u id,ENT\u引号;出于某种原因,它只适用于ENT_引号,如果我尝试使用ENT_HTML5、ENT_XHTML、ENT_HTML401或根本不使用任何标志,我不会得到任何结果。因此,只有引号被转换回正常字符。还有可能转换其他字符吗?我尝试了JS代码,但仍然没有结果。也许我做错了什么。我将此函数复制粘贴到脚本中,然后这样调用它:$edt_visitor_name.attr'value',htmlspecialchars_decoderesult[0]。visitor_name;请告诉我新的答案。我希望它能帮助你!我试过这样的html_entity_解码:我试过这样的:html_entity_decodejson_encodeselectSELECT*来自myTbl,其中visitor_id=$str_visitor_id,ENT_QUOTES;`出于某种原因,它只适用于ENT_引号,如果我尝试使用ENT_HTML5、ENT_XHTML、ENT_HTML401或根本不使用任何标志,我不会得到任何结果。我也尝试了JS:将函数复制到我的脚本中并这样调用:$edt\u visitor\u name.attr'value',htmlspecialchars\u decoderesult[0]。visitor\u name;但同样——没有结果。@Igal你做得不对。在接收数据的javascript中使用phpjs的html_entity_decode函数。我做错了什么?这不是防止SQL注入的方法。我建议使用PDO并为此编写声明。您应该始终存储未格式化的数据,并且仅在输出到客户端时对其进行格式化,而不是在插入时对其进行格式化,因为它会像您注意到的那样给您带来麻烦。它需要JQuery。。。我希望这对你有帮助!
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;