Quando eu submeto alguns formulários, passando por Ajax, eu gosto de sempre limpar as strings vindas, afim de evitar ataques de injection neles, por isso fiz essas duas pequenas funções abaixo, para facilicar isso, já que eu manipulo os dados direto via $_POST.
/**
* Função que descodifica dados no formato encodado de url de uma array.
* Bom para uso de dados que vem via javascript.
* @author Julio Luiz
* @license http://creativecommons.org/licenses/by-sa/3.0
* @param Array $arr
* @return Array
*/
public static function rawurldecode_array($arr) {
foreach($arr as $key => $val) {
if (!is_array($val))
$arr[$key] = rawurldecode($val);
else
$arr[$key] = self::rawurldecode_array($val);
}
return $arr;
}
/**
* Função que aplica alguns filtros de limpeza, para evitar qualquer injection na strings.
* Bom para uso de dados que vem via javascript.
* @author Julio Luiz
* @license http://creativecommons.org/licenses/by-sa/3.0
* @param Array $data
* @param Boolean $rawurldecode Se precisa descodificar os dados de url
* @return Array
*/
public static function limpaArrayRequest($data, $rawurldecode = false) {
foreach($data as $key => $val) {
if (!is_array($val))
$data[$key] = nl2br(strip_tags($val));
else
$data[$key] = self::limpaArrayRequest($val, $rawurldecode);
}
return ($rawurldecode) ? self::rawurldecode_array($data): $data;
}
Uso
$data = limpaArrayRequest($_POST, true); //Caso queira converter as strings codificadas no formato url
Qualquer dúvida, utilizem o fórum WMOnline
ps: maldito wp, tiro a Identação, desculpe :~