Ir para conteúdo

POWERED BY:

Arquivado

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

webfmx

formúlario para newletter

Recommended Posts

Olá pessoal,

 

Desenvolvi um sistema de newsletter, que através de uma checagem verifica se os dados devem ser inseridos ou não. Segue o código:

 

nome_newsletter = ""email_newsletter = ""nome_newsletter = request.form("nome")email_newsletter = request.form("email") valor = request("valor")if nome_newsletter <> "" and  email_newsletter <>  then		Set cm = Server.CreateObject("AdoDb.Command")cm.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("base.mdb")&""	cm.CommandText = "Insert into  newsletter(nome,email) values('"&nome_newsletter&"','"&email_newsletter&"')"cm.Executenome_newsletter = ""email_newsletter = ""	Set cm = Nothingend if<form action="principal.asp" method="post" onsubmit="return valida(this)"><input type="text" name="nome" value= "<%=nome_newsletter%>" class="formulario" /><br /><br /><br /><input type="text" name="email" value = "<%=email_newsletter%>" class="formulario" /><br /><br /><input name="submit" type="image" src="imagens/enviar.jpg" /></form>

O funcionamento estó ok no primeiro acesso, porém caso o visitante após a inserção atualize a página os dados são inseridos mais uma vez. Alguém sabe como "destruir" definitivamente as variáveis, ou uma maneira de evitar que isso aconteça ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara se eu entendi o que você quer fazer eu colocaria um campo no meu banco de dados sim/naoe quando o usuario se cadastra-se deixaria esse campo true, ai faria no script uma condiçãozinha que se o campo fosse = true não se cadastraria novamente!Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara se eu entendi o que você quer fazer eu colocaria um campo no meu banco de dados sim/naoe quando o usuario se cadastra-se deixaria esse campo true, ai faria no script uma condiçãozinha que se o campo fosse = true não se cadastraria novamente!Abraços

Entendi... e provavelmente irá funcionar http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Mas acho que isso irá consumir recursos desnecessários do servidor... ele terá que fazer uma pesquisa para verificar se os dados estão cadastrados no servidor, e depois baseado nessa informação cadastrar os novos dados ou não... se fosse pela variavel acredito que seria melhor. Será que tem como ? :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara quando você cadastra o usuario você "joga" ele para onde?para a mesma página?Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo!posta o script todo pra eu arrumar ai te explico!Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara uma saida seria quando você enviar o form envia um parametro junto ai antes de gravar você faz uma condição!

 

Tipo envia assim: pagina.asp?grava=nao

 

ai no seu script ficaria mais ou menos assim:

 

<%nome_newsletter = ""email_newsletter = ""nome_newsletter = request.form("nome")email_newsletter = request.form("email")valor = request("valor")grava = Request("grava")IF grava <> "nao" Thenif nome_newsletter <> "" and  email_newsletter <>  then		Set cm = Server.CreateObject("AdoDb.Command")cm.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("base.mdb")&""	cm.CommandText = "Insert into  newsletter(nome,email) values('"&nome_newsletter&"','"&email_newsletter&"')"cm.Executenome_newsletter = ""email_newsletter = ""	Set cm = Nothingend ifEnd IF%><form action="principal.asp" method="post" onsubmit="return valida(this)"><input type="text" name="nome" value= "<%=nome_newsletter%>" class="formulario" /><br /><br /><br /><input type="text" name="email" value = "<%=email_newsletter%>" class="formulario" /><br /><br /><input name="submit" type="image" src="imagens/enviar.jpg" /></form>

Sacou?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Shumi ! Valeu mesmo cara... Vou tentar agora ! Uma curiosidade que pode ser importante... Fiz um código seguindo exatamente os mesmos "moldes" no PHP, e lá o problema também ocorre ! http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

Será que o browser "amazena" os valores do formulário enquanto ele está aberto ??? No PHP tem a função isset que resolve isso...e no ASP ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara não manjo nada nada de PHP!esse comando seve para cache é isso?Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, vou dizer o óbvio... o "isset" verifica se uma variável está "setada' rs... Bem, a sua idéia (mais uma vez) é boa http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Eu tentei fazer algo semelhante usando um campo "hidden", mas não funcionou. Apenas uma coisa: Como posso passar uma parametro através de um formulário usando post ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu usaria um JS para isso!

não testei mas seria assim:

<script language="javascript">function Enviar(Botao) {	 if (Botao==1) {	 document.getElementById("cad").action="pagina.asp?grava=nao";}}</script>

e no form

<button type="button" value="Voltar" class="voltar" onClick="Enviar(1)"></button>

Testa e me fala!

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Schumi ! Cara... valeu mesmo pela ajuda ! Então, o jeito foi fazer aquele esquema que você mencionou, de verificar se o e-mail já está cadastrado. Até agora está tudo ok, performance, escalabilidade... fiquei bem atento as conexões, recordsets... e acho que vou ter um resultado dentro do esperado ! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif []'s

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.