A sua loja virtual - O arquivo de Verificação


Quando o usuário envia as informações solicitas pelo formulário gerado por identifica.asp elas são processadas pelo arquivo verifica.asp . Basicamente ele tenta localizar o cliente no banco de dados para ver se o mesmo já esta cadastrado.

 

Para criar uma loja virtual usando ASP .NET acompanhe o curso no link : 

ASP .NET - Criando um site completo com carrinho de compras (Curso)

 

Se o cliente não estiver cadastrado o script gera um código de erro que será processado pelo arquivo identifica.asp

O código do arquivo verifica.asp é o seguinte:

<%
Option Explicit

'Declaração das Variáveis 
Dim conntemp

'--------------------------------------
'Abre conexão com o banco de dados
'--------------------------------------

Sub Abre_Conexao
  Set conntemp = Server.CreateObject("ADODB.Connection") 
  conntemp.Open Application("Conecta_bd")
End Sub

'--------------------------------------
'Fecha conexão com o banco de dados
'--------------------------------------

Sub Fecha_Conexao
  conntemp.Close 
  Set conntemp = Nothing
End Sub

Dim rsClientes
Dim SQL

'Inicializa variaveis de sessao
Session("Id_Erro")=0
Session("Id_Email") = ""
Session("Id_Nome") = ""

'se encerrar a sessão redireciona para a página principal
If ( Ucase(Request.QueryString("operacao")) = "ENCERRASESSAO" ) Then
  Session.Abandon
  Session("ClienteID")=0
  Response.Redirect "/loja/index.asp"
End If

'--------------------------------------
'processamento geral
'--------------------------------------
'Abre conexão c/o banco de dados

Abre_Conexao

'Monta instrução SQL
SQL = "SELECT ClienteID, ClienteNome"
SQL = SQL & " FROM Clientes"
SQL = SQL & " WHERE ClienteEMail='" & Request.Form("frm_email") & "'"
SQL = SQL & " AND ClienteSenha='" & Request.Form("frm_senha") & "'"

'Abre o Recordset de Clientes para o e-mail informado
Set rsClientes = conntemp.Execute (SQL)

'se nao encontrou retorna erro, fechando o recordset e a conexão
If rsClientes.EOF Then
  session("Id_Erro")=1
  rsClientes.Close 
  Set rsClientes = Nothing
  Fecha_Conexao
  Response.Redirect "/loja/identifica.asp"
Else
  'identifica cliente 
  Session("ClienteID") = rsClientes("ClienteID")
  Session("ClienteNome") = rsClientes("ClienteNome")

  'cria cookie p/ o cliente e define data em que expira
 
Response.Cookies("cookie_EMail") = Request.Form("frm_email")
  Response.Cookies("cookie_EMail").Expires = DateAdd("m", 2, Date())

  'fecha recordset e conexao e redireciona para pagina de compras
  rsClientes.Close 
  Set rsClientes = Nothing
  Fecha_Conexao
  Response.Redirect "/loja/comprar.asp"
End If

%>
<!-- #Include file="ADOVBS.INC" -->

1-) Definimos as procedures para abrir/fechar a conexão

Sub Abre_Conexao

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

conntemp.Open Application("Conecta_bd")

End Sub

Sub Fecha_Conexao

conntemp.Close

Set conntemp = Nothing

End Sub

2-) Definimos as variáveis rsclientes e SQL e iniciamos as variáveis de sessão:

Dim rsClientes

Dim SQL

Session("Id_Erro")=0

Session("Id_Email") = ""

Session("Id_Nome") = ""

3-) Se for encerramento da sessão , abandona a sessão e redireciona o usuário para página inicial

If ( Ucase(Request.QueryString("operacao")) = "ENCERRASESSAO" ) Then

  Session.Abandon

  Session("ClienteID")=0

  Response.Redirect "/loja/index.asp"

End If

4-)Monta a instrução SQL para procurar pelo e-mail e pela senha cadastradas no banco de dados, e executa a instrução para gerar um recordset (conjunto de registros).

Select ClienteID,ClienteNome - Seleciona o código do cliente e o nome do cliente

FROM Clientes - da tabela Clientes

WHERE ClienteEmail='" & Request.Form("frm_email") & "'" - Onde o e-mail do cliente for igual ao e-mail cadastrado no formulario

AND ClienteSenha='" & Request.Form("frm_senha") & "'" - E a senha do cliente for igual a senha cadastrada no formulário

Observe que a senha e o e-mail são do tipo texto e por isso devem estar delimitados por uma aspa simples (') na consulta SQL.

SQL = "SELECT ClienteID, ClienteNome"

SQL = SQL & " FROM Clientes"

SQL = SQL & " WHERE ClienteEMail='" & Request.Form("frm_email") & "'"

SQL = SQL & " AND ClienteSenha='" & Request.Form("frm_senha") & "'"

Set rsClientes = conntemp.Execute (SQL)

5-)Se não houver registros (If rsClientes.EOF) que atendam a condição da consutla SQL a variável de sessão codigo de erro terá o valor assinalado como 1; fecha o recordset (rs.close) e  a  conexão  (set rsClientes = Nothing )  e retorna a página identifica.asp( repponse.Redirect "/loja/identifica.asp").

Caso contrário identifica o cliente, cria um cookie para o e-mail (Response.Cookies("cookie_EMail") = Request.Form("frm_email")  do cliente e vai para página de compras.(  Response.Redirect "/loja/comprar.asp")

If rsClientes.EOF Then

  session("Id_Erro")=1

  rsClientes.Close

  Set rsClientes = Nothing

  Fecha_Conexao

  Response.Redirect "/loja/identifica.asp"

Else

'identifica cliente

  Session("ClienteID") = rsClientes("ClienteID")

  Session("ClienteNome") = rsClientes("ClienteNome")

  'cria cookie p/ o cliente e define data em que expira

  Response.Cookies("cookie_EMail") = Request.Form("frm_email")

  Response.Cookies("cookie_EMail").Expires = DateAdd("m", 2, Date())

  'fecha recordset e conexao e redireciona para pagina de compras

  rsClientes.Close

  Set rsClientes = Nothing

  Fecha_Conexao

  Response.Redirect "/loja/comprar.asp"

End If

Observe que no final do arquivo usamos a diretiva: <!-- #Include file="ADOVBS.INC" -->

Um dos recursos do ASP é o include no lado do servidor. Esse recurso permite que você inclua arquivos dentro de uma página ASP durante a execução. Esse recurso é extremamente útil para a criação de funções globais, cabeçalhos, rodapés ou outros elementos que precisam ser reutilizados em várias páginas.

Aqui estamos incluindo o arquivo ADOVBS.INC que contém as constantes ADO usadas em nosso arquivo de script de forma que as constantes poderão ser usadas no scripts.

 

 Parte Anterior Próxima parte

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti