boa noite,
Tenho um formulario SAC um campo texto com multiplas linhas
quando o cliente digita os caracteres ’ " ou ´ acentuacao
da erro no SQL .
alguem poderia me ajudar em uma melhor forma para o meu cliente digitar e nao da erro?
boa noite,
Tenho um formulario SAC um campo texto com multiplas linhas
quando o cliente digita os caracteres ’ " ou ´ acentuacao
da erro no SQL .
alguem poderia me ajudar em uma melhor forma para o meu cliente digitar e nao da erro?
Ou iniba a digitação desses caracteres ou faça uma substituição de texto antes do salvamento.
No evento obValidate utilize a função addslashes no campo.
No caso do uso do addslashes() terá que aplicar stripslashes() no campo no evento onload do formulário, se não a \ (contrabarra) aparecerá na edição.
A melhor coisa é inibir a digitação de \ (contrabarra), ’ e " (aspas simples e dupla ASCII DEC 39 e 34), ou substituí-las por ` crase / apóstrofes (plica) ou ”.
Vale lembrar que ’ e " (aspas simples e dupla ASCII DEC 39 e 34) são encapsuladores e são interpretados pelo PHP.
a macro sc_sql_injection também pode ser usada.
valeu voce é 10 irei testar
O ScriptCase já podia aplicar sozinho internamente o sc_sql_injection em tudo que fosse campo digitado na aplicação.
Lembro antigamente quando o cliente Digitava o Nome da cidade no Cadastro, sem pegar pelo CEP a cidade Limeira D’oeste era Campeã em chamado de Suporte, ai vimos que teria que usar a macro em todos os cadastros para resolver.
Vou deixar a função aqui para quem precisar, ai só adicionar na sua biblioteca:
<?php
/*
Função para tirar SQL INJECTION dos campos e não travar o sistema
como usar:
{Campo}=RemoveSQL({Campo});
Para inibir a digitação de (contrabarra),
(aspas simples e dupla ASCII DEC 39 e 34)
Famosa: Limeira D oeste
*/
function RemoveSQL($Msg) {
$Msg=str_replace(chr(92),'', $Msg);
$Msg=str_replace(chr(34),'', $Msg);
$Msg=str_replace(chr(39),'', $Msg);
return $Msg;
} // Fim da Função: RemoveSQL($Msg)
?>