Ir para conteúdo
Fórum Script Brasil
  • 0

Ativar Cadastro Por E-mail


CMachado

Pergunta

Já procurei em vários tópicos aqui do fórum, encontrei alguns, mas nenhum me atendeu, sou meio leigo em asp e gostaria de saber se algu´me sabe como ativar a conta de um usuário após ele cadastrar-se, tipo.

O cara cadastra-se, em seguida envio um e-mail para ele, até ai tenho tudo, e funciona perfeitamente, só que preciso do script para ele ativar o cadastro, tipo um "confirma.asp". se puderem ajudar. Obrigado.

Eis o código.

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
Dim conexao, cnpath
Set Conexao = Server.CreateObject("ADODB.Connection")
cnpath=server.mappath("/")
cnpath=left(cnpath, len(cnpath)-3) & "dados\confirmacao_ativa.mdb"
Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cnpath 

%>
<%
nome = request.form("nome")
email = request.form("email") 
ip = request.form("ip")
data = request.form("data")
ativo = request.form("ativo")

strsql = "select * from cadastro where email = '"& email &"'"
set rs = conexao.execute(strsql)

if not rs.eof then
Response.write "Seu email já encontra-se em nossa base de dados <br><br><a href='javascript:history.go(-1)'>Voltar</a>"
response.end
end if

sql = "insert into cadastro (nome,email,ip,data,ativo) values ('"& nome &"','"& email &"','"& ip &"','"& data &"','"& ativo &"')"

set rs = conexao.execute(sql)

[color=red]na linha acima esta dando erro e não grava[/color]


HTML = HTML & "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<title>Confirmação Ativa de Cadastro</title>"
HTML = HTML & "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>"
HTML = HTML & "</head>"
HTML = HTML & ""
HTML = HTML & "<bgcolor='#ffffff' text='#ffffff'>"
HTML = HTML & "<font face='verdana' size='2'>Você solicitou o cadastro no Portal GPSOM através do ip "& ip &" em "& data &"<br> Para confirmar o seu cadastro </font><a href='http://www.gpsom.com/forms/login/cadastra_mail/confirma.asp?email="&email&"' target='_blank'><b>Clique Aqui</b></a></center></font></td></tr></table>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"

Set Mailer = Server.CreateObject("SMTPsvg.Mailer") 
Mailer.FromName = remetente
Mailer.FromAddress= "webmaster@gpsom.com"
Mailer.RemoteHost = "smtp.infolink.com.br;smtpdom.infolink.com.br"
Mailer.AddRecipient nome,email
Mailer.ContentType = "text/html"' formatação html 
Mailer.Subject = "Confirmação de Cadastro"
Mailer.BodyText = HTML 
Mailer.SendMail

Set Mailer = Nothing 


conexao.close
set conexao = nothing
%>


<p><font size="2" face="Verdana, Arial, sans-serif">Prezado <%=nome%> ,</font></p>
<p><font size="2" face="Verdana, Arial, sans-serif">Seu cadastro ainda n&atilde;o 
 foi efetivado , para confirm&aacute;-lo , acesse o email <%=vemail%> e clique 
 sobre o link para confirmar este cadastro.</font></p>
<p><font size="2" face="Verdana, Arial, sans-serif">Este politica &eacute; feita 
 , para que ningu&eacute;m utilize o seu email de m&aacute; f&eacute;. </font></p>
<p><font face="Verdana, Arial, sans-serif" size="2">Equipe Anti Spam - GPSOM</font></p>
<p>&nbsp;</p>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

25 respostass a esta questão

Posts Recomendados

  • 0

Bom eu nunca fiz uma aplicação deste tipo, por isso estou sujeita a falar monte de besteira hehehe.

mas eu imagino que dentro da sua tabela, com o cadastro do usuário, deva ter um campo "ATIVADO" e sinalado 0/1 (não e sim). Daí quando o cara clica no link e vai para um formulário... ele ativa o cadastro. A rotina seria de update no campo "ATIVADO"

eu faria alguma coisa desse tipo, nesse caso

Link para o comentário
Compartilhar em outros sites

  • 0

Não testei mas seria assim:

<%
id_usuario = request.form("id_usuario")

Dim conexao
call abre_conexao

sql = "select * from USUARIOS where id_usuario = " & id_usuario

set tab = Conexao.Execute(sql)


if tab("autenticado") = 1 then

response.write "você já foi autenticado"

elseif tab("autenticado") = 0 then
autenticado = 1

sql_atualiza = "UPDATE USUARIOS SET "
sql_atualiza = sql_atualiza & "id_usuario = '" & id_usuario & "', "
sql_atualiza = sql_atualiza & "autenticado = '" & autenticado & "'"
sql_atualiza = sql_atualiza & "WHERE id_usuario = " & id_usuario

set tab_atualiza = Conexao.Execute(sql_atualiza)

response.redirect "ok.asp"
end if

%>
Só lembrando que eu uso função pra conexão, ou você adapta pro seu uso ou pode criar um arquivo bib_conexao.asp(exemplo) assim:
<%
sub abre_conexao
  Set Conexao = Server.CreateObject("ADODB.Connection")
 Conexao.Open "DBQ=caminhodasuapasta\seubanco.mdb;Driver={Microsoft Access Driver (*.mdb)}"
end sub

sub fecha_conexao
     Conexao.close
     Set Conexao = nothing
end sub 
%>


E fazer o include na página, <!--#include file="bib_conexao.asp"-->

Link para o comentário
Compartilhar em outros sites

  • 0

há já ia me esquecendo, há uma linha do codigo que esta dando erro e não grava no banco..

a linha he esta...

<%
nome = request.form("nome")
email = request.form("email") 
ip = request.form("ip")
data = request.form("data")
ativo = request.form("ativo")

strsql = "select * from cadastro where email = '"& email &"'"
set rs = conexao.execute(strsql)

if not rs.eof then
Response.write "Seu email já encontra-se em nossa base de dados <br><br><a href='javascript:history.go(-1)'>Voltar</a>"
response.end
end if

sql = "insert into cadastro (nome,email,ip,data,ativo) values ('"& nome &"','"& email &"','"& ip &"','"& data &"','"& ativo &"')"

set rs = conexao.execute(sql)

na linha acima esta dando erro e não grava :( 


EIS O ERRO

Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

/forms/login/Cadastra_mail/confirmacao_ativa1.asp, line 32

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu bicicleta consegui gravar os dados, eu havia errado nas aspas. Obrigado

Andreia, esta quase tudo certo so que continua dando erro no script do confirma.asp.

Eis o erro que esta dando na linha 10.


<title>GPSOM - Grupo PopSom - Cadastros</title><!--#include file="conexao.asp"--> 
<%
ID_Usuario = request.form("ID_Usuario")

Dim conexao
call abre_conexao

sql = "select * from Cadastro where ID_Usuario = " & ID_Usuario

set tab = Conexao.Execute(sql)

if tab("Ativo") = 1 then

response.write "você já foi autenticado"

elseif tab("Ativo") = 0 then
autenticado = 1

sql_atualiza = "UPDATE Cadastro SET "
sql_atualiza = sql_atualiza & "ID_Usuario = '" & ID_Usuario & "', "
sql_atualiza = sql_atualiza & "Ativo = '" & Ativo & "'"
sql_atualiza = sql_atualiza & "WHERE ID_Usuario = " & ID_Usuario

set tab_atualiza = Conexao.Execute(sql_atualiza)

response.redirect "ok.asp"
end if

%>

Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'ID_Usuario ='.

/forms/login/cadastra_mail/confirma.asp, line 10

Link para o comentário
Compartilhar em outros sites

  • 0

CMachado,

desculpe estar respondendo só agora, é que não estava recendo avisos deste tópico!

então, esse seu último erro é porque ele não está recebendo o valor do ID_usuario. Veja se você está passando o valor na página anterior, porque no confirma.asp está solicitando esta variável.

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, se o seu campo Id_usuario e ativo são do tipo número então altere o UPDATE:

sql_atualiza = "UPDATE Cadastro SET "
sql_atualiza = sql_atualiza & "ID_Usuario = " & ID_Usuario & ", "
sql_atualiza = sql_atualiza & "Ativo = " & Ativo & ""
sql_atualiza = sql_atualiza & " WHERE ID_Usuario = " & ID_Usuario

Link para o comentário
Compartilhar em outros sites

  • 0

Andreia obrigado pela sua paciencia, já estamos quase chegando la, vou postar todo o codigo aqui e verifique por favor onde esta errado.

cadastra_mail.asp

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<p>&nbsp;</p>
<form name="form1" method="post" action="confirmacao_ativa1.asp">
 <table width="574" border="0" align="center" bgcolor="#eaeaea">
   <tr> 
     <td colspan="2"> 
       <div align="center"><font size="2" face="Verdana, Arial, sans-serif"><b> 
         <input type="hidden" name="ip" value="<%=Request.ServerVariables("REMOTE_ADDR")%>">
         Receba nosso boletim 
         <input type="hidden" name="data" value="<%=now%>">
         <input type="hidden" name="ativo" value="0">
         </b></font></div>
     </td>
   </tr>
   <tr bgcolor="#FFFFFF"> 
     <td width="283"> 
       <div align="right"><font size="2" face="Verdana, Arial, sans-serif">Nome:</font></div>
     </td>
     <td width="281"> 
       <input type="text" name="nome" size="40">
     </td>
   </tr>
   <tr bgcolor="#FFFFFF"> 
     <td width="283"> 
       <div align="right"><font size="2" face="Verdana, Arial, sans-serif">Email:</font></div>
     </td>
     <td width="281"> 
       <input type="text" name="email" size="40">
     </td>
   </tr>
   <tr> 
     <td colspan="2"> 
       <div align="center"> 
         <input type="submit" name="Submit" value="Cadastrar">
       </div>
     </td>
   </tr>
 </table>
</form>
<p align="center">&nbsp;</p>

</body>
</html>
confirmacao_ativa1.asp
<html>
<head>
<title>GPSOM - Grupo PopSom - Cadastros</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
Dim conexao, cnpath
Set Conexao = Server.CreateObject("ADODB.Connection")
cnpath=server.mappath("/")
cnpath=left(cnpath, len(cnpath)-3) & "dados\confirmacao_ativa.mdb"
Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cnpath 

%>
<%
nome = request.form("nome")
email = request.form("email") 
ip = request.form("ip")
data = request.form("data")
ativo = request.form("ativo")
ID_Usuario = request.form("ID_Usuario")

strsql = "select * from cadastro where Email = '"& Email &"'"
set rs = conexao.execute(strsql)

if not rs.eof then
Response.write "Seu email já encontra-se em nossa base de dados <br><br><a href='javascript:history.go(-1)'>Voltar</a>"
response.end
end if

sql = "insert into cadastro (nome,email,ip,data,ativo) values ('"& nome &"','"& email &"','"& ip &"','"& data &"', '"& ativo &"')"
conexao.execute(sql)

HTML = HTML & "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<title>Confirmação de Cadastro</title>"
HTML = HTML & "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>"
HTML = HTML & "</head>"
HTML = HTML & ""
HTML = HTML & "<bgcolor='#ffffff' text='#ffffff'>"
HTML = HTML & "<font face='verdana' size='2'>Você solicitou o cadastro no Portal GPSOM através do ip "& ip &" em "& data &"<br> Para confirmar o seu cadastro </font><a href='http://www.gpsom.com/forms/login/cadastra_mail/confirma.asp?email="&email&"' target='_blank'><b>Clique Aqui</b></a></center></font></td></tr></table>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"

Set Mailer = Server.CreateObject("SMTPsvg.Mailer") 
Mailer.FromName = "GPSOM - Grupo PopSom"
Mailer.FromAddress = "webmaster@gpsom.com"
Mailer.RemoteHost = "smtp.infolink.com.br;smtpdom.infolink.com.br"
Mailer.AddRecipient nome,email
Mailer.ContentType = "text/html"' formatação html 
Mailer.Subject = "Confirmação de Cadastro"
Mailer.BodyText = HTML 
Mailer.SendMail

Set Mailer = Nothing 


conexao.close
set conexao = nothing
%>


<p><font size="2" face="Verdana, Arial, sans-serif">Prezado <b><%=nome%></b> ,</font></p>
<p><font size="2" face="Verdana, Arial, sans-serif">Seu cadastro ainda n&atilde;o 
 foi efetivado , para confirm&aacute;-lo , acesse o email <%=vemail%> e clique 
 sobre o link para confirmar este cadastro.</font></p>
<p><font size="2" face="Verdana, Arial, sans-serif">Este politica &eacute; feita 
 , para que ningu&eacute;m utilize o seu email de m&aacute; f&eacute;. </font></p>
<p><font face="Verdana, Arial, sans-serif" size="2">Equipe Anti Spam - GPSOM</font></p>
<p>&nbsp;</p>
</body>
</html>
confirma.asp
<title>GPSOM - Grupo PopSom - Cadastros</title>
<!--#include file="conexao.asp"--> 
<%
ID_Usuario = request.form("ID_Usuario")

Dim conexao
call abre_conexao

sql = "select * from Cadastro where ID_Usuario = " & ID_Usuario
set tab = Conexao.Execute(sql)

if tab("Ativo") = 1 then

response.write "você já foi autenticado"

elseif tab("Ativo") = 0 then
Ativo = 1

sql_atualiza = "UPDATE Cadastro SET "
sql_atualiza = sql_atualiza & "ID_Usuario = " & ID_Usuario & ", "
sql_atualiza = sql_atualiza & "Ativo = " & Ativo & ""
sql_atualiza = sql_atualiza & " WHERE ID_Usuario = " & ID_Usuario

set tab_atualiza = Conexao.Execute(sql_atualiza)

response.redirect "ok.asp"
end if

%>
Pelo amor de Deus veja o que esta errado. este he o erro que da...
Microsoft JET Database Engine error '80040e14' 

Syntax error (missing operator) in query expression 'email ='. 

/forms/login/cadastra_mail/confirma.asp, line 10 

Obrigado biggrin.gif

Editado por CMachado
Link para o comentário
Compartilhar em outros sites

  • 0

Então o que está faltando é o ID_Usuario ou Email???

bom se for o ID_usuario, modifique em confirmacao_ativa1.asp:

.
.
.
Para confirmar o seu cadastro </font<a href="http://www.gpsom.com/forms/login/cadastra_mail/confirma.asp?email=<%= email %>&id_usuario=<%= id_usuario %>" target="_blank"><b>Clique...

Se for email, você tem que colocar no confirma.asp
request.querystring("id_usuario")

ao invés de request.form("id_usuario") porque a variavel está vindo com o link e não por um form.

Se for o e-mail que está faltando, é a mesma coisa request.querystring("email")

Link para o comentário
Compartilhar em outros sites

  • 0

É Andreia está dificil, eu fiz teste de tudo quanto foi jeito, mas não vai nem à pau. Quando eu coloco a linha que você enviou

.
.
.
Para confirmar o seu cadastro </font<a href="http://www.gpsom.com/forms/login/cadastra_mail/confirma.asp?email=<%= email %>&id_usuario=<%= id_usuario %>" target="_blank"><b>Clique...

no confirmacao_ativa1.asp dá erro desta linha inteira, e o erro do confirma.asp continua do mesmo jeito.

Tem que haver uma solução....

Não quero desistir. sad.gif

Obrigado smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

blink.gif opaaaaaa eu tb escrevi tag asp dentro de tag asp, nem percebi, desculpe...

tente agora:

<a href='http://www.gpsom.com/forms/login/cadastra_mail/confirma.asp?email="&email&"&id_usuario="&id_usuario&"' target='_blank'><b>Clique Aqui</b></a></center></font></td></tr></table>"

Link para o comentário
Compartilhar em outros sites

  • 0

não adianta o código insiste em dar o erro no mesmo lugar linha 10, e o link da mensagem está pegando o email mas não o id_usuario.. veja o link...

http://www.gpsom.com/forms/login/cadastra_mail/confirma.asp?email=contat@gpsom.com&id_usuario=

falta algo...

eu não me importo se tiver que pegar pelo id_usuario ou pelo email, só quero que valide o cadastro, mais nada.

Editado por CMachado
Link para o comentário
Compartilhar em outros sites

  • 0

blink.gifblink.gifblink.gif vamos pensar juntos hein rssss, o Id_Usuario vem do Banco de Dados e não do form...

então tenta (pela milhonésia vez):

.
.

<%
nome = request.form("nome")
email = request.form("email") 
ip = request.form("ip")
data = request.form("data")
ativo = request.form("ativo")

strsql = "select * from cadastro where Email = '"& Email &"'"
set rs = conexao.execute(strsql)

id_usuario= rs("id_usuario")

eu já confundi tudo agora hein, se não for você vai ter q me passar essa sua aplicação pra entender... ai ai ai unsure.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Andreia já postei todo o código, mas tudo bem se é para resolver vou postar todo novamente...

conexao.asp

<%
sub abre_conexao
Set Conexao = Server.CreateObject("ADODB.Connection")
cnpath=server.mappath("/")
cnpath=left(cnpath, len(cnpath)-3) & "dados\confirmacao_ativa.mdb"
Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cnpath 
end sub

sub fecha_conexao
    Conexao.close
    Set Conexao = nothing
end sub 
%>
cadastra_mail.asp
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<p>&nbsp;</p>
<form name="form1" method="post" action="confirmacao_ativa1.asp">
 <table width="574" border="0" align="center" bgcolor="#eaeaea">
   <tr> 
     <td colspan="2"> 
       <div align="center"><font size="2" face="Verdana, Arial, sans-serif"><b> 
         <input type="hidden" name="ip" value="<%=Request.ServerVariables("REMOTE_ADDR")%>">
         Receba nosso boletim 
         <input type="hidden" name="data" value="<%=now%>">
         <input type="hidden" name="ativo" value="0">
         </b></font></div>
     </td>
   </tr>
   <tr bgcolor="#FFFFFF"> 
     <td width="283"> 
       <div align="right"><font size="2" face="Verdana, Arial, sans-serif">Nome:</font></div>
     </td>
     <td width="281"> 
       <input type="text" name="nome" size="40">
     </td>
   </tr>
   <tr bgcolor="#FFFFFF"> 
     <td width="283"> 
       <div align="right"><font size="2" face="Verdana, Arial, sans-serif">Email:</font></div>
     </td>
     <td width="281"> 
       <input type="text" name="email" size="40">
     </td>
   </tr>
   <tr> 
     <td colspan="2"> 
       <div align="center"> 
         <input type="submit" name="Submit" value="Cadastrar">
       </div>
     </td>
   </tr>
 </table>
</form>
<p align="center">&nbsp;</p>

</body>
</html>

confirmacao_ativa1.asp
<html>
<head>
<title>GPSOM - Grupo PopSom - Cadastros</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
Dim conexao, cnpath
Set Conexao = Server.CreateObject("ADODB.Connection")
cnpath=server.mappath("/")
cnpath=left(cnpath, len(cnpath)-3) & "dados\confirmacao_ativa.mdb"
Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cnpath 

%>
<%
nome = request.form("nome")
email = request.form("email") 
ip = request.form("ip")
data = request.form("data")
ativo = request.form("ativo")

strsql = "select * from cadastro where Email = '"& Email &"'"
set rs = conexao.execute(strsql)

id_usuario= rs("id_usuario")

if not rs.eof then
Response.write "Seu email já encontra-se em nossa base de dados <br><br><a href='javascript:history.go(-1)'>Voltar</a>"
response.end

end if

sql = "insert into cadastro (nome,email,ip,data,ativo) values ('"& nome &"','"& email &"','"& ip &"','"& data &"', '"& ativo &"')"
conexao.execute(sql)

HTML = HTML & "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<title>Confirmação de Cadastro</title>"
HTML = HTML & "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>"
HTML = HTML & "</head>"
HTML = HTML & ""
HTML = HTML & "<bgcolor='#ffffff' text='#ffffff'>"
HTML = HTML & "<font face='verdana' size='2'>Você solicitou o cadastro no Portal GPSOM através do ip "& ip &" em "& data &"<br> Para confirmar o seu cadastro </font><a href='http://www.gpsom.com/forms/login/cadastra_mail/confirma.asp?email="&email&"&id_usuario="&id_usuario&"' target='_blank'><b>Clique Aqui</b></a></center></font></td></tr></table>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"

Set Mailer = Server.CreateObject("SMTPsvg.Mailer") 
Mailer.FromName = "GPSOM - Grupo PopSom"
Mailer.FromAddress = "webmaster@gpsom.com"
Mailer.RemoteHost = "smtp.infolink.com.br;smtpdom.infolink.com.br"
Mailer.AddRecipient nome,email
Mailer.ContentType = "text/html"' formatação html 
Mailer.Subject = "Confirmação de Cadastro"
Mailer.BodyText = HTML 
Mailer.SendMail

Set Mailer = Nothing 


conexao.close
set conexao = nothing
%>


<p><font size="2" face="Verdana, Arial, sans-serif">Prezado <b><%=nome%></b> .</font></p>
<p><font size="2" face="Verdana, Arial, sans-serif">Seu cadastro ainda n&atilde;o 
 foi efetivado , para confirm&aacute;-lo , acesse o email <%=vemail%> e clique 
 sobre o link para confirmar este cadastro.</font></p>
<p><font size="2" face="Verdana, Arial, sans-serif">Este politica &eacute; feita 
 , para que ningu&eacute;m utilize o seu email de m&aacute; f&eacute;. </font></p>
<p><font face="Verdana, Arial, sans-serif" size="2">Equipe Anti Spam - GPSOM</font></p>
<p>&nbsp;</p>
</body>
</html>
confirma.asp
<title>GPSOM - Grupo PopSom - Cadastros</title>
<!--#include file="conexao.asp"--> 
<%
ID_Usuario = request.querystring("id_usuario")

Dim conexao
call abre_conexao

sql = "select * from Cadastro where ID_Usuario = " & ID_Usuario
set tab = Conexao.Execute(sql)

if tab("Ativo") = 1 then

response.write "você já foi autenticado"

elseif tab("Ativo") = 0 then
Ativo = 1

sql_atualiza = "UPDATE Cadastro SET "
sql_atualiza = sql_atualiza & "ID_Usuario = " & ID_Usuario & ", "
sql_atualiza = sql_atualiza & "Ativo = " & Ativo & ""
sql_atualiza = sql_atualiza & " WHERE ID_Usuario = " & ID_Usuario

set tab_atualiza = Conexao.Execute(sql_atualiza)

response.redirect "ok.asp"
end if

%>

ai está e só analisar e ver onde está o erro, só falta o banco de dados, mas se quiser posto aqui os detalhes do banco. OK

Obrigado pela sua paciência. biggrin.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Então eu fiz uma simulação aqui da sua aplicação e consegui entender o problema.

Veja então:


sql = "insert into cadastro (nome,email,ip,data,ativo) values ('"& nome &"','"& email &"','"& ip &"','"& data &"', '"& ativo &"')"
set sql = conexao.execute(sql)

sql2 = "select * from cadastro where Email = '"& Email &"'"
set tab2 = Conexao.Execute (sql2)
.
.
.
HTML = HTML & "<font face='verdana' size='2'>Você solicitou o cadastro no Portal GPSOM através do ip "& ip &" em "& data &"<br> Para confirmar o seu cadastro </font><a href='http://www.gpsom.com/forms/login/cadastra_mail/confirma.asp?email="&email&"&id_usuario="&tab2("id_usuario")&"' target='_blank'>
Eu acredito que tenha uma forma melhor do que esta porque só consegui chegar na solução fazendo uma outra consulta ao banco. Porque assim: se ele está cadastrado então você tem a id_usuario (já está no banco) se ele não está, o sistema ainda não tem a id_usuario, daí ele registra e ai sim pega a id_usuario. Nesse passo eu fiz uma nova consulta, pra ele achar a id_usuario. Outra coisa, mude tb no arquivo confirma.asp, porque Id_usuario é autonumeração e você não pode fazer update nela:

sql_atualiza = "UPDATE Cadastro SET "
sql_atualiza = sql_atualiza & "Ativo = " & Ativo & ""
sql_atualiza = sql_atualiza & " WHERE ID_Usuario = " & ID_Usuario

Se alguém ai tiver uma ideia melhor pra resolver, legal, se não CMachado pode fazer desse jeito q eu te passei porque testei aqui e funcionou.

falou

Link para o comentário
Compartilhar em outros sites

  • 0

Andreia beleza !!! show de bola...

está confirmando o e-mail conforme eu queria.

só que na hora do cadastro está dando erro na linha 30.. conforme código abaixo, acho que no seu teste você deve ter modificado alguma linha a mais e não postou para mim, posta todo o código que deu certo... sou um pouco leigo em ASP.


Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'rs' 

/forms/login/Cadastra_mail/confirmacao_ativa1.asp, line 30 

confirmacao_ativa1.asp

<html>
<head>
<title>GPSOM - Grupo PopSom - Cadastros</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
Dim conexao, cnpath
Set Conexao = Server.CreateObject("ADODB.Connection")
cnpath=server.mappath("/")
cnpath=left(cnpath, len(cnpath)-3) & "dados\confirmacao_ativa.mdb"
Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cnpath 
%>

<%
nome = request.form("nome")
email = request.form("email") 
ip = request.form("ip")
data = request.form("data")
ativo = request.form("ativo")

sql = "insert into cadastro (nome,email,ip,data,ativo) values ('"& nome &"','"& email &"','"& ip &"','"& data &"', '"& ativo &"')"
set sql = conexao.execute(sql)

sql2 = "select * from cadastro where Email = '"& Email &"'"
set tab2 = Conexao.Execute (sql2)

id_usuario= rs("id_usuario")

if not rs.eof then
Response.write "Seu email já encontra-se em nossa base de dados <br><br><a href='javascript:history.go(-1)'>Voltar</a>"
response.end
end if

HTML = HTML & "<html>"
HTML = HTML & "<head>"

o erro está nesta parte... acho que em

id_usuario= rs("id_usuario")

sql = "insert into cadastro (nome,email,ip,data,ativo) values ('"& nome &"','"& email &"','"& ip &"','"& data &"', '"& ativo &"')"
set sql = conexao.execute(sql)

sql2 = "select * from cadastro where Email = '"& Email &"'"
set tab2 = Conexao.Execute (sql2)

id_usuario= rs("id_usuario")

if not rs.eof then
Response.write "Seu email já encontra-se em nossa base de dados <br><br><a href='javascript:history.go(-1)'>Voltar</a>"
response.end
end if

só falta issp para fecharmaos... não sei como te agradecer. sad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

já fiz isso olha o que acontece... o problema acho que esta na hora de verificar se o usuario existe no banco...


Microsoft VBScript runtime error '800a01a8' 

Object required: '' 

/forms/login/Cadastra_mail/confirmacao_ativa1.asp, line 29 

tipo...

if not rs.eof then
Response.write "Seu email já encontra-se em nossa base de dados <br><br><a href='javascript:history.go(-1)'>Voltar</a>"
response.end
end if

Link para o comentário
Compartilhar em outros sites

  • 0

huh.gif ueeeeeeee funciona certinho aqui no meu.... blink.gifblink.gif

Veja como está o meu arquivo confirmacao_ativa1.asp:

<html>
<head>
<title>GPSOM - Grupo PopSom - Cadastros</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<!--#include file="conexao.asp"-->
<body bgcolor="#FFFFFF" text="#000000">
<%
Dim conexao
call abre_conexao

nome = request.form("nome")
email = request.form("email") 
ip = request.form("ip")
data = request.form("data")
ativo = request.form("ativo")

strsql = "select * from cadastro where Email = '"& Email &"'"
set rs = conexao.execute(strsql)


if not rs.eof then

Response.write "Seu email já encontra-se em nossa base de dados <br><br><a href='javascript:history.go(-1)'>Voltar</a>"

end if

sql = "insert into cadastro (nome,email,ip,data,ativo) values ('"& nome &"','"& email &"','"& ip &"','"& data &"', '"& ativo &"')"
set sql = conexao.execute(sql)

sql2 = "select * from cadastro where Email = '"& Email &"'"
set tab2 = Conexao.Execute (sql2)

varDe = "Sistema"
varPara = email
varAssunto = "Cadastro"
varTexto = "Você solicitou o cadastro no Portal GPSOM através do ip "& ip &" em "& data &"<br> Para confirmar o seu cadastro </font><a href='confirma.asp?email="&email&"&id_usuario="&tab2("id_usuario")&"' target='_blank'><b>Clique Aqui</b></a></center></font></td></tr></table>"

Set Email = Server.CreateObject ("CDONTS.NewMail")
Email.From = varDe
Email.To = varPara
Email.Subject = varAssunto
Email.Body = varTexto
Email.Send
Set Email = nothing


call fecha_conexao
set conexao = nothing
%>


<p><font size="2" face="Verdana, Arial, sans-serif">Prezado <b><%=nome%></b> .</font></p>
<p><font size="2" face="Verdana, Arial, sans-serif">Seu cadastro ainda n&atilde;o 
foi efetivado , para confirm&aacute;-lo , acesse o email <%=vemail%> e clique 
sobre o link para confirmar este cadastro.</font></p>
<p><font size="2" face="Verdana, Arial, sans-serif">Este politica &eacute; feita 
, para que ningu&eacute;m utilize o seu email de m&aacute; f&eacute;. </font></p>
<p><font face="Verdana, Arial, sans-serif" size="2">Equipe Anti Spam - GPSOM</font></p>
<p>&nbsp;</p>
</body>
</html>

ps.: Veja se você chamou a função da conexão Call abre_conexao... e..... saravá meu pai!!! rsssss

Link para o comentário
Compartilhar em outros sites

  • 0

ACHO QUE FALTAVA O SARAVÁ MEU PAI OXALÁ

Eu havia dito que seu código não estava igual ao meu, faltavam algumas linhas...

Muito obrigado mesmoooooo. pela sua paciência....

Adorei abrir um tópico que procurei muito aqui no fórum e não encontrei, muitas pessoas não encontravam respostas e finalmente acho será muito útil...

OBRIGADÃO MESMO. ANDREIA você FOI UM DOCE. biggrin.gif

tópico FECHADO...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...