Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel Carvalho Ti

[Resolvido] Erro com aspas duplas " "

Recommended Posts

Olá companheiros. Estou com um problema e até agora nada de solução. Pelo amor de Deus se alguém poder me ajudar ficarei muito grato. Toda vez quando um formulário é enviado(editor de texto), na transmissão dos dados é colocado uma barra invertida antes e entre as aspas duplas. Ex1: href=\"\" Ex2: "\" Ex1: style=\"\". Sempre vai ficar dando pau no html. Estou achando que isso é algum modulo de segurança do apache. O que dizem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é não é do Apache, é da linguagem que está usando. Parece ser PHP. Se for, leia sobre magic_quotes_gpc e entenderá :thumbsup:

 

Obrigado d+ Beraldo,essa problema estava me deixando louco. Para quem tiver o mesmo problema ai vai a função.

 

function strip_magic_slashes($str) {    

return get_magic_quotes_gpc() ? stripslashes($str) : $str; 
}

 

Tópico resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado d+ Beraldo,essa problema estava me deixando louco. Para quem tiver o mesmo problema ai vai a função.

 

function strip_magic_slashes($str) {    

return get_magic_quotes_gpc() ? stripslashes($str) : $str; 
}

 

Tópico resolvido.

 

No meu php, mesmo com magic_quotes_gpc OFF, não vieram as contra-barras nas aspas e deu pau no query. Ok, meu php está errado, e isso nunca acontece... Mas ao que parece essas coisas vão mudar com o php 5.4, ainda não descobri a solução definitiva, mas há algumas soluções paralelas:

 

No manual do php está a seguinte função:

 

function escape_query($str) {
   return strtr($str, array(
       "\0" => "",
       "'"  => "'",
       "\"" => """,
       "\\" => "\",
       // more secure
       "<"  => "<",
       ">"  => ">",
   ));
}

 

Esta é a minha solução caseira ainda na onda das contra-barras:

 

function encodeQuotes($str){
if(!$str) return '';
if(strpos($str, '\"')===FALSE && strpos($str, "\'")===FALSE) return addslashes($str);
return $str;
}

 

Recém comecei a usar, se quiserem testar isso aí, fiquem à vontade ;-)

 

Outra saída que estou desenvolvendo é codificar tudo em hexadecimal (%) quando desenvolvo em Ajax, tem funcionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.