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
E-mail De Validação
Started By aipim2000, 21/09/2004, 17:08
3 replies to this topic
#1
Posted 21/09/2004, 17:08
Nã nã nã nã!!!
O ministério da sáude adverte
Tomar cerveja faz nascer cabelo no cérebro.
O ministério da sáude adverte
Tomar cerveja faz nascer cabelo no cérebro.
#2
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?
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
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
Pagina cadastro.asp
Pagina cadastro_ok.asp
Pagina ativa_cadastro.asp
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
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.
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.
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)










