Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de saber a opnião de vocês sobre a função abaixo
public function escape($values)
{
if (is_array($values)):
foreach($values as $chave => $valor)
{
$values[$chave] = $this->escape($valor);
}
return $values;
endif;
$values = get_magic_quotes_gpc() ? stripslashes($values) : $values;
if (function_exists('mysql_real_escape_string') AND is_resource($this->conexao)):
$values = mysql_real_escape_string($values, $this->conexao);
elseif (function_exists('mysql_escape_string')):
$values = mysql_escape_string($values);
else:
$values = addslashes($values);
endif;
$values = ($values != "") ? "'" . $values . "'" : "null";
return $values;
}
Obrigado!
Valeu pela resposta!
Realmente PDO é muito bacana (bem melhor que o módulo do PEAR).
Ainda estou usando meus scripts até me adaptar com algum framework.
>
Tem uma falha no seu codigo.
No foreach, se o $values for um array tambem, ele nao vai passar pelo filtro.
Na verdade ele está chamando a função recursivamente dentro do foreach. Então, se $values for um array, a função escape será chamada novamente e vai testar. Se o que for passado for um array, chama a função para valor do array. Se dentro deste array o valor ainda for um array, vai acontecer da mesma forma.
Carlos Eduardo
Tem uma falha no seu codigo.
No foreach, se o $values for um array tambem, ele nao vai passar pelo filtro.
No mais, parece tudo certo.
Mas...
É Bobagem. Porque voce nao usa o PDO, uma biblioteca nativa do PHP que previne todo e qualquer tipo de inject?
Além de voce poder alterar o banco de dados em uma string.
Da uma olhada ai:
http://php.net/pdo