Jump to content


Photo

Evitar Duplicação


  • Faça o login para participar
4 replies to this topic

#1 luc_hcore

luc_hcore

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado
  • Localidade:Fortaleza-CE

Posted 15/08/2005, 23:07

Bem galera tenho um formulário em HTML que joga informações para a página de resposta abaixo. Como faço para evitar que dois e-mails iguais sejam cadastrados?
<%
'Aqui abrimos a conexão com nosso banco de dados
Set Conex = Server.CreateObject ("ADODB.Connection") 
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("promocoes.mdb")


'Coletamos os dados do formulário
nome = request("nome")
sexo = request("sexo")
email = request("email")
telefone = request("telefone")
celular = request("celular")
cidade = request("cidade")
estado = request("estado")
endereco = request("endereco")
blusa = request("blusa")

'Verificamos os dados
if nome = "" then
alerta = alerta + "<span class=conteudo>*Nome completo<br>"
end if

if sexo = "" then
alerta = alerta + "<span class=conteudo>*Sexo<br>"
end if

if blusa = "" then
alerta = alerta + "<span class=conteudo>*Blusa<br>"
end if

if telefone = "" then
alerta = alerta + "<span class=conteudo>*Telefone Residencial<br>"
end if

if cidade = "" then
alerta = alerta + "<span class=conteudo>*Cidade<br>"
end if

if estado = "" then
alerta = alerta + "<span class=conteudo>*Estado<br>"
end if

if endereco = "" then
alerta = alerta + "<span class=conteudo>*Endereço<br>"
end if

if instr(email,"@") = 0 then
alerta = alerta + "<span class=conteudo>*E-mail (inválido)"
end if

 

'Se não forem encontrados erros ele executa as instruções abaixo
if alerta = "" then

Set cadastra = Server.CreateObject("ADODB.Recordset")
sql = "Select * from promocoes"
cadastra.open sql, conex, 3,3
cadastra.addnew
cadastra("nome") = nome
cadastra("sexo") = sexo
cadastra("email") = email
cadastra("telefone") = telefone
cadastra("celular") = celular
cadastra("cidade") = cidade
cadastra("estado") = estado
cadastra("endereco") = endereco
cadastra("blusa") = blusa
cadastra.update
'Exibe uma mensagem de que o cadastro foi realizado
alerta = ("<span class=conteudo><b>Parabéns "& nome &"! Você concorrerá a brindes. Todo mês os ganhadores aparecerão aqui.")

end if

'Exibe as mensagens na tela
response.Write(alerta)
response.Write("<br>")
%>

A vida é a soma de suas escolhas.

#2 Generation

Generation

    Super Veterano

  • Usuários
  • 1546 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 16/08/2005, 00:04

Esse codigo vai abaixo do if alerta = "" then

Set Verifica = Server.CreateObject("ADODB.Recordset")
sql = "Select * from promocoes where email ='"&email"'"
If Verifiva.EOF Then 
   ' aqui vai o codigo que adiciona o novo registro
Else
   Reponse.Write "E-Mail já cadastrado na promoção"
End If

[]'s
Favoritos : | OpenSuse | Opera | Firefox | NetBeans | GMail | Leia As Regras | Use a Busca | Como fazer Perguntas Inteligentes |
“Obstáculos são aquelas coisas medonhas que você vê quando tira seus olhos de seu objetivo” (Henry Ford)
“É impossível para um homem aprender aquilo que ele acha que já sabe.” (Epíteto)
“A única razão da existência do tempo é para que todas as coisas não aconteçam de uma vez.”(Albert Einstein)

#3 luc_hcore

luc_hcore

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado
  • Localidade:Fortaleza-CE

Posted 20/08/2005, 18:16

Brother coloquei o código q vc postou e apareceu isso ahee no IIS:
Tipo de erro:
ADODB.Recordset (0x800A0E78)
Operação não permitida quando o objeto está fechado.
promocoes.asp, line 59

Ñ entendi nda...

line 59:
If Verifica.EOF Then

Código completo que testei dessa vez:
<%
'Aqui abrimos a conexão com nosso banco de dados
Set Conex = Server.CreateObject ("ADODB.Connection") 
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("promocoes.mdb")


'Coletamos os dados do formulário
nome = request("nome")
sexo = request("sexo")
email = request("email")
telefone = request("telefone")
celular = request("celular")
cidade = request("cidade")
estado = request("estado")
endereco = request("endereco")
blusa = request("blusa")

'Verificamos os dados
if nome = "" then
alerta = alerta + "<span class=conteudo>*Nome completo<br>"
end if

if sexo = "" then
alerta = alerta + "<span class=conteudo>*Sexo<br>"
end if

if blusa = "" then
alerta = alerta + "<span class=conteudo>*Blusa<br>"
end if

if telefone = "" then
alerta = alerta + "<span class=conteudo>*Telefone Residencial<br>"
end if

if cidade = "" then
alerta = alerta + "<span class=conteudo>*Cidade<br>"
end if

if estado = "" then
alerta = alerta + "<span class=conteudo>*Estado<br>"
end if

if endereco = "" then
alerta = alerta + "<span class=conteudo>*Endereço<br>"
end if

if instr(email,"@") = 0 then
alerta = alerta + "<span class=conteudo>*E-mail (inválido)"
end if

 

'Se não forem encontrados erros ele executa as instruções abaixo
if alerta = "" then

' aqui vai o codigo que verifica se o email ja esta cadastrado
Set Verifica = Server.CreateObject("ADODB.Recordset")
sql = "Select * from promocoes where email ='"&email&"'"
If Verifica.EOF Then

Else
  Response.Write "E-Mail já cadastrado na promoção"
End If

' aqui vai o codigo que cadastra
Set cadastra = Server.CreateObject("ADODB.Recordset")
sql = "Select * from promocoes"
cadastra.open sql, conex, 3,3
cadastra.addnew
cadastra("nome") = nome
cadastra("sexo") = sexo
cadastra("email") = email
cadastra("telefone") = telefone
cadastra("celular") = celular
cadastra("cidade") = cidade
cadastra("estado") = estado
cadastra("endereco") = endereco
cadastra("blusa") = blusa
cadastra.update
'Exibe uma mensagem de que o cadastro foi realizado
alerta = ("<span class=conteudo><b>Parabéns "& nome &"! Você concorrerá a brindes. Todo mês os ganhadores aparecerão aqui.")

end if

'Exibe as mensagens na tela
response.Write(alerta)
response.Write("<br>")
%>

A vida é a soma de suas escolhas.

#4 spider_72

spider_72

    Turista

  • Usuários
  • 44 posts
  • Sexo:Não informado

Posted 23/08/2005, 09:19

Entaum, testei tb o código mencionado e tb não deu certo, deu o mesmo erro, será que alguem sabe onde esta o erro?

Só que meu script esta um pouco diferente:

<%
nom = Request.form("nom")
rg = Request.form("rg")
ende = Request.form("ende")
bai = Request.form("bai")
cid = Request.form("cid")
est = Request.form("est")
cep = Request.form("cep")
tel = Request.form("tel")
dna = Request.form("dna")
ema = Request.form("ema")
eci = Request.form("eci")
pro = Request.form("pro")
opcao = Request.form("opcao")
opcao2 = Request.form("opcao2")
If ende = "" then ende = "Não Informado" End If
If bai = "" then bai = "Não Informado" End If
If cid = "" then cid = "Não Informado" End If
If est = "" then est = "Não Informado" End If
If cep = "" then cep = "Não Informado" End If
If dna = "" then dna = "Não Informado" End If
If ema = "" then ema = "Não Informado" End If
If eci = "" then eci = "Não Informado" End If
If pro = "" then pro = "Não Informado" End If
If opcao = "" then opcao = "Não Informado" End If
If opcao2 = "" then opcao2 = "Não Informado" End If

set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open(StringdeConexao)

ComandoSQL = "INSERT INTO caminhada (nom, rg, tel, ema, ende, bai, cid, est, cep, dnas, eciv, pro, opcao, opcao2) VALUES ('"&nom&"', '"&rg&"', '"&ende&"', '"&bai&"', '"&cid&"', '"&est&"', '"&cep&"', '"&tel&"', '"&dna&"', '"&ema&"', '"&eci&"', '"&pro&"', '"&opcao&"', '"&opcao2&"') "
Conexao.Execute ComandoSQL

O código deve mudar creio eu, podem me ajudar aí?

Edição feita por: spider_72, 23/08/2005, 09:34.


#5 Agente Linhares

Agente Linhares

    fuis...abraços!

  • Ex-Admins
  • 3138 posts
  • Sexo:Não informado
  • Localidade:Biritiba Mirim-SP

Posted 23/08/2005, 11:03

o generation passou certo..vc q errou ao inserir no seu code:

tenta:
<%
'Aqui abrimos a conexão com nosso banco de dados
Set Conex = Server.CreateObject ("ADODB.Connection") 
Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("promocoes.mdb")


'Coletamos os dados do formulário
nome = request("nome")
sexo = request("sexo")
email = request("email")
telefone = request("telefone")
celular = request("celular")
cidade = request("cidade")
estado = request("estado")
endereco = request("endereco")
blusa = request("blusa")

'Verificamos os dados
if nome = "" then
alerta = alerta + "<span class=conteudo>*Nome completo<br>"
end if

if sexo = "" then
alerta = alerta + "<span class=conteudo>*Sexo<br>"
end if

if blusa = "" then
alerta = alerta + "<span class=conteudo>*Blusa<br>"
end if

if telefone = "" then
alerta = alerta + "<span class=conteudo>*Telefone Residencial<br>"
end if

if cidade = "" then
alerta = alerta + "<span class=conteudo>*Cidade<br>"
end if

if estado = "" then
alerta = alerta + "<span class=conteudo>*Estado<br>"
end if

if endereco = "" then
alerta = alerta + "<span class=conteudo>*Endereço<br>"
end if

if instr(email,"@") = 0 then
alerta = alerta + "<span class=conteudo>*E-mail (inválido)"
end if



'Se não forem encontrados erros ele executa as instruções abaixo
'if alerta = "" then

' aqui vai o codigo que verifica se o email ja esta cadastrado

Set Verifica = Server.CreateObject("ADODB.Recordset")
sql2 = "Select * from promocoes where email ='"&email&"'"
Verifica.open sql2, conex, 3,3

If Verifica.EOF Then ' (aqui vc diz q se for vazio, logo é pq nao existe um e-mail igual ao digitado, aí vc coloca abaixo o insert:

	' aqui vai o codigo que cadastra
	Set cadastra = Server.CreateObject("ADODB.Recordset")
	sql = "Select * from promocoes"
	cadastra.open sql, conex, 3,3
	cadastra.addnew
	cadastra("nome") = nome
	cadastra("sexo") = sexo
	cadastra("email") = email
	cadastra("telefone") = telefone
	cadastra("celular") = celular
	cadastra("cidade") = cidade
	cadastra("estado") = estado
	cadastra("endereco") = endereco
	cadastra("blusa") = blusa
	cadastra.update
	'Exibe uma mensagem de que o cadastro foi realizado
	alerta = ("<span class=conteudo><b>Parabéns "& nome &"! Você concorrerá a brindes. Todo mês os ganhadores aparecerão aqui.")

Else ' se nao vc da a msg e naod eixa cadastrar o e-mail pq ja existe
  Response.Write "E-Mail já cadastrado na promoção <br><br>link para voltar"
  response.end
End If


'end if

'Exibe as mensagens na tela
'response.Write(alerta)
'response.Write("<br>")
%>

mas pegue a logica do lance q ta nos coments.
> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq