Ir para conteúdo

POWERED BY:

Arquivado

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

Leonardo Djeri de Toledo

Cadastro em ASP: Não cadastrar mesmo email

Recommended Posts

Boa tarde amigos,

 

Tenho um formulário de cadastro feito em ASP com MYSQL.

 

O problema é o seguinte: Bloquear novos cadastros de E-mails e CPF já cadastrados.

 

O código que eu tenho é:

 

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO"))PASSWORD = request.form("PASSWORD")strConnection = "DSN=XXX; DB=XXX_com_br; UID=XXX; PWD=XXXX"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...set rsResult = adoDataConn.execute ("select * from cliente where EMAIL like '" & EMAIL &"' and PASSWORD = '" & PASSWORD &"' order by EMAIL")if not rsResult.eof thenresponse.redirect("erro.asp?erro=Este E-mail já existe, escolha outro por favor!")elseSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))end ifFunction FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%>
Esse código que utilizo acima está permitindo o cadastro de e-mails repetidos.

 

Alguem poderia me ajudar????

 

Obrigado!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

Cara quando for postar scripts use a tag CODE do IPB fica horrivel de ver assim!

 

exemplo do que você quer:

dim queryquery = "SELECT email FROM cadastro"set rs = Conexcao.Execute(query)do while not rs.eof		if trim(rs("email")) = trim(request.Form("email")) then		response.redirect("exibe.asp?msg=4")		response.End()			end if	rs.movenextloop

esse msg=4 seria isso:

<% If CInt(Request.QueryString("msg")) = 4 Then %><script language="javascript" type="text/javascript"><!-- alert("E-mail já existe");//--></script><% End If %>
Só pra deixar mais bunitinho com alert!

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

a Lógica é que antes de você cadastrar você verifica se tem ou não! ;) Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vixiii

 

Acho que me enrolei....

 

Era pra deixar assim?

 

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO"))PASSWORD = request.form("PASSWORD")strConnection = "DSN=mysql; DB=xxx_com_br; UID=xxx_adm; PWD=xxxxxx"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...dim queryquery = "SELECT email FROM cadastro"set rs = Conexcao.Execute(query)do while not rs.eof		if trim(rs("email")) = trim(request.Form("email")) then		response.redirect("exibe.asp?msg=4")		response.End()			end if	rs.movenextSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))end ifFunction FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

é ai mesmo cara, mas você tem que conferir se a tabela que eu coloquei ta certa, pois você copiou o script e não modificou nada, tem que informar a TABELA e o CAMPO certo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu modifiquei os campos e a tabela, mas esta dando erro...

 

Veja:

 

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO"))PASSWORD = request.form("PASSWORD")strConnection = "DSN=mysql; DB=xxx_com_br; UID=xxx_adm; PWD=xxxxxx"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...dim queryquery = "SELECT EMAIL FROM cliente"set rs = Conexcao.Execute(query)do while not rs.eof		if trim(rs("EMAIL")) = trim(request.Form("EMAIL")) then		response.redirect("exibe.asp?msg=4")		response.End()			end if	rs.movenextloopSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))end ifFunction FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não tenho configurado o mysql local, então, eu faço teste direto do servidor de hospedagem... E não aparece a mensagem de erro com codigo, só diz que a pagina não pode ser exbida. Porem, ele não mudou de página, o erro continua nessa programação...

Compartilhar este post


Link para o post
Compartilhar em outros sites

a página não pode ser exibida por causa disso: response.redirect("exibe.asp?msg=4")

essa página que eu coloquei é apenas um exemplo ali você tem que colocar a sua página que retornaria a mensagem "QUE O E_MAIL JÁ EXISTE!"

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já tinha alterado, mudei para página ok.asp

 

E na OK.asp eu coloquei:

 

<% If CInt(Request.QueryString("msg")) = 4 Then %><script language="javascript" type="text/javascript"><!-- alert("E-mail já existe");//--></script><% End If %>

Era pra afzer isso, certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não!

nessa ok.asp

 

você pode fazer assim:

<%Response.Write("e-mail já existente!")%>

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummmmmmmm...

 

Então a pagina ficaria assim?

 

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO"))PASSWORD = request.form("PASSWORD")strConnection = "DSN=mysql; DB=xxx_com_br; UID=xxx_adm; PWD=xxxxxx"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...dim queryquery = "SELECT EMAIL FROM cliente"set rs = Conexcao.Execute(query)do while not rs.eof		if trim(rs("EMAIL")) = trim(request.Form("EMAIL")) then		response.redirect("ok.asp?msg=4")		response.End()			end if	rs.movenextloopSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))end ifFunction FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%><% If CInt(Request.QueryString("msg")) = 4 Then %><script language="javascript" type="text/javascript"><!-- alert("E-mail já existe");//--></script><% End If %>

Desculpe a ignorancia, mas eh que sou leigo....

 

Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode deixar assim:

response.redirect("ok.asp")

ao inves de assim:

response.redirect("ok.asp?msg=4")

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara tem algum lugar que ela esteja online pra eu dar uma olhada?não é possivel, você deve estar fazendo alguma confusão!Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

O endereço para você testar é: http://www.barello.com.br/test/cadastra.asp

 

Apos preencher o cadastro ele vai para a pagina cadastra2.asp... eh essa pagina que tah dando problema, onde está aquela programação.

 

Segue abaixo a programação:

 

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO"))PASSWORD = request.form("PASSWORD")strConnection = "DSN=mysql; DB=xxx_com_br; UID=xxx_adm; PWD=xxxxxx"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...dim queryquery = "SELECT EMAIL FROM cliente"set rs = Conexcao.Execute(query)do while not rs.eof		if trim(rs("EMAIL")) = trim(request.Form("EMAIL")) then		response.redirect("erro.asp")		response.End()			end if	rs.movenextloopSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))end ifFunction FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%><% If CInt(Request.QueryString("msg")) = 4 Then %><script language="javascript" type="text/javascript"><!-- alert("E-mail já existe");//--></script><% End If %>

Valeu pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro de tudo leia isso: http://forum.imasters.com.br/index.php?sho...amp;#entry89167

 

e testa seu script assim:

 

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO"))PASSWORD = request.form("PASSWORD")strConnection = "DSN=mysql; DB=xxx_com_br; UID=xxx_adm; PWD=xxxxxx"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...dim queryquery = "SELECT EMAIL FROM cliente"set rs = Conexcao.Execute(query)do while not rs.eof		if trim(rs("EMAIL")) = trim(request.Form("EMAIL")) then		response.redirect("erro.asp")		response.End()			end if	rs.movenextloopSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))Function FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%><% If CInt(Request.QueryString("msg")) = 4 Then %><script language="javascript" type="text/javascript"><!--alert("E-mail já existe");//--></script><% End If %>

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Configurei o navegador para mostrar o erro....

 

 

O codigo ficou:

 

<%response.buffer = trueresponse.expires = 0response.cachecontrol = "private"session.timeout = 40session.LCID = 1046DATA = Day(Now) & "-" & Month(Now) & "-" & Year(Now)NOME = request.form("NOME")RAZAO = request.form("RAZAO")FANTASIA = request.form("FANTASIA")CPF = request.form("CPF")RG = request.form("RG")ENDERECO = request.form("ENDERECO")BAIRRO = request.form("BAIRRO")CIDADE = request.form("CIDADE")UF = request.form("UF")FONE = request.form("FONE")FAX = request.form("FAX")EMAIL = request.form("EMAIL")CEP = request.form("CEP")SEXO = request.form("SEXO")DATA = FormataData(Request.Form("NASCIMENTO"))PASSWORD = request.form("PASSWORD")strConnection = "DSN=mysql; DB=xxxxx_com_br; UID=xxxxxx; PWD=xxxxxxxxx"Set adoDataConn = Server.CreateObject("ADODB.Connection")adoDataConn.Open strConnection' Faz uma consulta...dim queryquery = "SELECT EMAIL FROM cliente"set rs = Conexao.Execute(query)do while not rs.eof		if trim(rs("EMAIL")) = trim(request.Form("EMAIL")) then		response.redirect("erro.asp")		response.End()			end if	rs.movenextloopSQL1 = "INSERT INTO cliente (NOME,RAZAO,FANTASIA,NASCIMENTO,CPF,RG,ENDERECO,BAIRRO,CIDADE,UF,FONE,FAX,EMAIL,CEP,SEXO,PASSWORD) VALUES "SQL1 = SQL1 & "('" & NOME & "','" & RAZAO & "','" & FANTASIA & "','" & DATA & "','" & CPF &"','" & RG &"','" & ENDERECO &"','" & BAIRRO & "','" & CIDADE &"','" & UF &"','" & FONE &"','" & FAX &"','" & EMAIL &"','" & CEP & "','" & SEXO &"','" & PASSWORD &"')"adoDataConn.execute(SQL1)response.redirect("Ok.asp?nome="& Request.Form("NOME"))Function FormataData(DATA)dia = DatePart("d", DATA)mes = DatePart("m", DATA)ano = DatePart("yyyy", DATA)FormataData = ano & "-" & mes & "-" & diaEnd Function%><% If CInt(Request.QueryString("msg")) = 4 Then %><script language="javascript" type="text/javascript"><!-- alert("E-mail já existe");//--></script><% End If %>
E o erro apresentado é:

 

Microsoft VBScript runtime error '800a01a8'

 

Object required: 'Conexao'

 

/test/cadastra2.asp, line 36

 

A linha 36 é:

set rs = Conexao.Execute(query)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara você COPIOU o script sem modificar com suas necessidade por isso o erro!

 

Olha com que variavel você abre o BANCO.

 

strConnection = "DSN=mysql; DB=xxxxx_com_br; UID=xxxxxx; PWD=xxxxxxxxx"

Set adoDataConn = Server.CreateObject("ADODB.Connection")

adoDataConn.Open strConnection

 

e olha com qual você faz a consulta:

 

set rs = Conexao.Execute(query)

 

por isso o erro!!!!!!!!!!!

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.