Ir para conteúdo
Fórum Script Brasil
  • 0

Replace de ASPAS | Acentuação - ASP c/ MySql


WebSan.Com.Br

Pergunta

Bom, vim ajudar em um problema simples mais muito publicado, usar ASPAS para inserir conteudo em banco de dados !

Caso você tenha um formulário, e este conteudo será salvo no banco de dados, e está tendo problemas com ASPAS simples e duplas, tenho uma solução !

Para criar est a ajuda eu li muitas dúvidas sobre este assunto, e até agora achei muitas soluções, porém venho aqui mostrar uma forma de codigicação que eu tive MUITOS problemas e hoje resolvo desta forma, e espero poder ajudar outros sobre este problema !

Eu juntei os dois problemas pois um irá ajudar no outro !

(Meu primeiro tópico de ajuda)

Vamos lá,

--------------------- ACENTUAÇÃO (CharSet e META) ---------------------

1° No MySql não existe CharSet ISO-8859-1, então testei com outros no mysql e nos padrões funcionaram.

- Para criar tabelas no seu MySql use Charset (utf8).

2° Nas suas páginas use:

<% Response.Charset="ISO-8859-1" %>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
--------------------- ASPAS --------------------- Sabemos que no ASP não podemos inserir aspas simples em um campo de form para ser inserido do banco de dados. Tambem que aspas duplas para editar um conteudo do banco pelo form SOME (desaparece) Com estes 2 problemas, uma simples solução USANDO A ACENTUAÇÃO DADA ACIMA !!!!!!!!!!!!! Trocar as aspas pelo código ASCII: Aspas simples: ' = Chr(39) * E achei 2 tipos diferentes de ASPAS DUPLAS.... Padrão: Aspas Duplas: " = Chr(34) Outra: ASpas Duplas: “ = Chr(147) Bom, usando o Chr(34), depois para você editar este conteudo ele irá SUMIR com todo o conteúdo depois da ASPAS DUPLAS dentro do seu form. Usando aspas simples, terá problema com o ASP, ele não irá inserir seu conteudo ! Você pode trocar pela (“) ou Chr(147) que irá resolver, MASSSSS... usando em suas páginas o META e Charset passados acima... * Se você usar outro tipo de charset para sua página, a aspas Chr(147) será trocado por um caracteres inválido. Agora então os replace para resolver os seu problemas:
<%
<input type="text" name="texto" value="Testando aspas ' e aspas " para inserir no banco !">
conteudo = Request.Form("texto")

Replace(conteudo,"'", "''") => Caso tenha aspas simples ele duplica ela para que possa ser salvo no banco.
Replace(conteudo,Chr(34), Chr(147)) => Ele troca a aspas duplas pela outra aspas duplas, que não é usada em códigos ASP.


então na prática....

conteudo = Request.Form("texto")
addnobanco = Replace(Replace(conteudo,"'","''"),Chr(34),Chr(147))

Conn.Execute "INSERT INTO tabela(conteudo) VALUES ('" & addnobanco & "')"

Espero que este tópico não seja visto com maus olhos, pois isso ainda é um grande problema entre muitos...

E desculpe pela pessima formatação da explicação, é meu 1° tópico de ajuda e não sou muito bom em explicação ^^

Mas espero ajudar !!!

Editado por WebSan.Com.Br
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...