Jump to content
Fórum Script Brasil
  • 0

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


WebSan.Com.Br

Question

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 !!!

Edited by WebSan.Com.Br
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...