Ir para conteúdo

Arquivado

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

Renato =)

Problema com aspas (") e apóstrofos (')

Recommended Posts

Então galera, o negócio é o seguinte...

 

Na hora de cadastrar alguma informação no meu site, eu tenho dificuldades quando coloco um apóstrofo (por causa do mysql) ou quando coloco uma aspa (por causa do input)

 

Por exemplo, quando vou passar uma informação com aspas para um input em outra página, ele fica assim:

 

<input name="nome" value=[b]"este é o "[/b][color=red]valor""[/color]>

e quando uso apóstrofo, o problema é esse:

 

mysql_query("INSERT INTO `tabela` (`texto`) VALUES ([b]'Este é o '[/b][color=red]texto''[/color]")

onde negrito é o valor entendido e vermelho é o que sobrou e devia estar dentro...

 

 

 

alguém sabe algum modo bom de driblar estes problemas?

tentei htmlentities só que ele acabou afetando todas as tags de html onde usei...

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu ver se eu entendi a idéia

 

é só usar str_replace pra transformar " em \" e ' em \' ??

 

funciona? ô,ô

 

 

eu to até pensando em fazer um outro caracter não utilizado pra apostrofo e aspas, algum código...

 

 

†‡ pra aspas e ‡† pra apostrofo, aí na hora de cadastrar ele troca e na hora de mostrar ele troca também, mas acho meio chunchera hahahah

Compartilhar este post


Link para o post
Compartilhar em outros sites

No manual do PHP, na parte de referências da linguagem, ensina a utilizar as aspas e o apóstrofo da maneira correta, utilizando escape e outras técnicas, além da sintaxe heredoc:

 

http://br2.php.net/manual/pt_BR/language.types.string.php

 

Nesta página também exitem referências a várias funções que estão relacionadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, é só pegar o valor e usar a função addslashes, por exemplo:

 

$nome = $_POST['nome'];

$nome = addslashes($nome);

 

Ou, resumindo:

 

$nome = addslashes($_POST['nome']);

 

Isso vai fazer o ' virar \' e o " virar \", mas quando for inserido no MySQL, a barra sai, ficando só " ou ' mesmo! ^^

 

Isso se faz necessário por que o que delimita um pedaço de texto (string) no MySQL são as aspas... =)

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Ps.: Se for exibir a variavel no HTML, depois de usar o addslashes, usa o stripslashes pra remover as barras. =)

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.