Jump to content


Photo

E-mail De Validação


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

#1 aipim2000

aipim2000

    Turista

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

Posted 21/09/2004, 17:08

Estou fazendo um sistema de cadastro de usuários, gostaria de saber como faço pra enviar aquele e-mail de validação, pra que o usuário tenha q abrir o e-mail dele e confirmar o registro no site.

Pelo que pesquisei o cdonts não é o mais apropriado.

Obrigado
Nã nã nã nã!!!

O ministério da sáude adverte
Tomar cerveja faz nascer cabelo no cérebro.

#2 myaccount2lists

myaccount2lists

    Ativo

  • Usuários
  • 347 posts
  • Sexo:Masculino

Posted 21/09/2004, 17:28

Nunca fiz isso, mas parando pra pensar agora, que voce postou esse topico... acho que pode ser simples.

Qdo o cara efetuar o cadastro e colocar o email dele,
crie um SESSION usando o username e email do cara,
dados esses que serao passado pelo brownser, e enviado no email do cara.

exemplo:

www.teste.com.br/tanana/checando.asp?username=usernamedele&x=8798j87ghFGaxsaAdfscffd

Coloque uma pagina num onde nao exista nenhum menu em seu site que possa acessala, no caso a pagina checando.asp.

nela vc faz a verifica, se esta pagina foi acessada.
se ela foi acessado, significa que o cara recebeu no seu email, entao vc pega o valor username (request.QueryString) para modificar algum campo no banco de dados. Ex. se a pagina foi acessada, habilite um checkbox que da acesso a conta do cara.

vc conseguiu entender?

#3 powerAsp_X

powerAsp_X
  • Visitantes

Posted 21/09/2004, 18:16

Primeiro vc deve ter em seu banco de dados, na tabela de usuários um campo que vai informar se o usuário está ativo ou não.

Para o código abaixo, utilizei uma tabela com o nome tb_Usr com a seguinte estrutura:

UsrID -> auto-numeração
usr_Nome -> Texto (50)
usr_Email -> Texto (50)
usr_Cidade -> Texto (50)
usr_Cod -> Texto(50)
usr_Ativo -> Texto (1)

Se o usuário estiver ativo, o campo usr_Ativo recebe S caso contrario recebe N.

Segue o codigo completo para vc, blz?

Não vou fazer nenhum tipo de validação javascript para que o código fique o mais limpo possível.

Cadastro.htm
<html>
<head>
<title>Ativação de Cadastro por E-mail</title>
</head>
<body>
<form action="cadastro.asp" method="post">
<table border="0" cellpadding="0" cellspacing="0" width="40%" height="131">
  <tr>
    <td width="43%" align="right" height="21">Nome:</td>
    <td width="57%" height="21"><input type="text" size="20" name="nome"></td>
  </tr>
  <tr>
    <td width="43%" align="right" height="21">Cidade:</td>
    <td width="57%" height="21"><input type="text" size="20" name="cidade"></td>
  </tr>
  <tr>
    <td width="43%" align="right" height="21">E-mail:</td>
    <td width="57%" height="21"><input type="text" size="20" name="email"></td>
  </tr>
  <tr>
    <td width="100%" colspan="2" height="68">
      <p align="center"><input type="button" value="Cadastrar" name="submit"></td>
  </tr>
</table>
</form>
</body>
</html>


Pagina cadastro.asp
<%
Function GerarChave(valores) 
	Dim strArray(61)
	Dim chave, num 
        strArray(0) =	"0"
  strArray(1)	=	"1"
  strArray(2)	=	"2"
  strArray(3)	=	"3"
  strArray(4)	=	"4"
  strArray(5)	=	"5"
  strArray(6)	=	"6"
  strArray(7)	=	"7"
  strArray(8)	=	"8"
  strArray(9)	=	"9"
  strArray(10)	=	"A"
  strArray(11)	=	"B"
  strArray(12)	=	"C"
  strArray(13)	=	"D"
  strArray(14)	=	"E"
  strArray(15)	=	"F"
  strArray(16)	=	"G"
  strArray(17)	=	"H"
  strArray(18)	=	"I"
  strArray(19)	=	"J"
  strArray(20)	=	"K"
  strArray(21)	=	"L"
  strArray(22)	=	"M"
  strArray(23)	=	"N"
  strArray(24)	=	"O"
  strArray(25)	=	"P"
  strArray(26)	=	"Q"
  strArray(27)	=	"R"
  strArray(28)	=	"S"
  strArray(29)	=	"T"
  strArray(30)	=	"U"
  strArray(31)	=	"V"
  strArray(32)	=	"W"
  strArray(33)	=	"X"
  strArray(34)	=	"Y"
  strArray(35)	=	"Z"
  strArray(36)	=	"a"
  strArray(37)	=	"b"
  strArray(38)	=	"c"
  strArray(39)	=	"d"
  strArray(40)	=	"e"
  strArray(41)	=	"f"
  strArray(42)	=	"g"
  strArray(43)	=	"h"
  strArray(44)	=	"i"
  strArray(45)	=	"j"
  strArray(46)	=	"k"
  strArray(47)	=	"l"
  strArray(48)	=	"m"
  strArray(49)	=	"n"
  strArray(50)	=	"o"
  strArray(51)	=	"p"
  strArray(52)	=	"q"
  strArray(53)	=	"r"
  strArray(54)	=	"s"
  strArray(55)	=	"t"
  strArray(56)	=	"u"
  strArray(57)	=	"v"
  strArray(58)	=	"w"
  strArray(59)	=	"x"
  strArray(60)	=	"y"
  strArray(61)	=	"z"

	Randomize
	Do While Len(chave) < valores
  num = strArray(Int(61 * Rnd ))
  chave = chave + num
	Loop
	GerarChave = chave
End Function


	Dim nome, cidade, email
	Dim objConexao, rs, sql
	Dim caminho
	Dim sNameTo, sNameFrom, sEmailFrom, sText, sEmailTo, sAssunto
	
	nome  = Trim(Request("nome"))
	cidade	= Trim(Request("cidade"))
	email  = Trim(Request("email"))
	
	
	nome = Replace(nome, "'","''")
	cidade= Replace(cidade, "'","''")
	email= Replace(email, "'","''")
	
	caminho = "bd/banco.mdb"   	 'endereço do banco de dados 
	
	
	Set objConexao = Server.CreateObject("ADODB.Connection")
	objConexao.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & Server.MapPath(caminho)
	
	Sql = "Insert Into tb_Usr(usr_Nome,usr_Email,usr_Cidade,usr_Ativo) Values "
	Sql = Sql & "('" & nome & "', '" & email & "', '" & cidade & "','N')"
	
	objConexao.Execute(Sql)
	
	Set objConexao = Nothing
	
	codUsr = GerarChave(50)
	
	'Pegando os dados digitados nos campos e colocando em variaveis
	sNameFrom = nome
	sEmailFrom = "email_do_seu_site@seu_site.com.br"
	sEmailTo = email
	sNameTo = "Nome do seu Site"
	sText = "Para ativar sua conta, por favor clique no link abaixo:<p><a href='http://www.seusite.com.br/ativa_cadastro.asp?u=" & codUsr & "'>Ativar Cadastro</a>"
	sAssunto = "Ativação da Conta"

'Cria o objeto
  set mailer = server.createobject("SMTPsvg.Mailer")
  Mailer.FromName = sNameFrom
  Mailer.FromAddress = sEmailFrom
  
  
'Host para envio de emails
'CONFIGURE ESTA LINHA !
  Mailer.RemoteHost = "smtp.servidor.com.br"
  Mailer.AddRecipient sEmailTo, sNameTo
  Mailer.Subject = sAssunto  & " - E-mail"

'Monta a texto para o envio
  strMsgHeader = sNameFrom & "(" & sEmailFrom & ") vbCrLf & vbCrLf
  strMsgFooter = sText
  Mailer.BodyText = strMsgHeader & strMsgFooter
  Mailer.SendMail
  
  Response.Redirect("cadastro_ok.asp?email=" & email)	

%>



Pagina cadastro_ok.asp
<html>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
    <td width="100%">
      <p align="center">Seu cadastro foi efetuado com sucesso.</p>
      <p align="center">Para ativar sua conta, utilize o link enviado para o
      e-mail<%=Trim(request("email"))%></p>
      <p align="center">Obrigado.</p>
  </tr>
</table>
</body>
</html>


Pagina ativa_cadastro.asp
<%

	Dim nome, email, codigo
	Dim objConexao, rs, sql
	Dim caminho

	nome  = Trim(Request("nome"))
	codigo	= Trim(Request("u"))
	email  = Trim(Request("email"))
	
	nome = Replace(nome, "'","''")
	email= Replace(email, "'","''")
	
	caminho = "bd/banco.mdb"   	 'endereço do banco de dados 
	
	
	Set objConexao = Server.CreateObject("ADODB.Connection")
	objConexao.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & Server.MapPath(caminho)
	
	Sql = "Select Nome From tb_Usr Where Usr_Cod = '" & codigo & "'"
	
	Set rs = objConexao.Execute(Sql)

	If Not rs.EOF Then  'se encontrar o usuario no banco de dados, atualiza a situacao dele para usuario ativo
  objConexao.Execute("Update tb_Usr Set usr_Ativo = 'S' Where usr_Cod='" & codigo & "'")
  Response.Write("Ok.<p>A sua conta foi liberada com sucesso!")
	Else
  Response.Redirect("erro.htm")  ' se nao achar, manda o usuario para a pagina de erro
	End if
  
	Set rs = Nothing
	Set objConexao = Nothing

%>

Claro que o codigo é bem simples.

Qqr coisa, dá o toque.

[]'s

 :ph34r: 


#4 aipim2000

aipim2000

    Turista

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

Posted 22/09/2004, 08:46

Poxa valeu!

Até que a parte de criar o codigo e a parte do banco de dados com a informação se a conta está ativa ou não já tinha uma idéia de como fazer, o que não sabia mesmo era como enviar o e-mail.

Vou testar aquele do smtp, qualquer coisa pergunto aqui de novo.

Valeu Thalisvalle e PowerAsp_X.
Nã nã nã nã!!!

O ministério da sáude adverte
Tomar cerveja faz nascer cabelo no cérebro.




1 user(s) are reading this topic

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

IPB Skin By Virteq