Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sr.silva

Trabalhando com classes, como faz o retorno da SQL

Recommended Posts

Olá!!

 

Estou trabalhando com classes para validação de LOGIN e SENHA e tenho a seguinte dúvida.

 

Como faço para verificar se CASO o usuário não seje VALIDADO na SQL em questão, digo isso

pois o resultado apenas sai para a VALIDAÇÃO correta.

 

A minha dúvida então é, como faço para mostrar caso o usuário não seje validado???

 

Como instacio a classe.

<%Dim verifica  session("usuario") = replace(request("txtLogin"),"'","")  session("senha")   = replace(request("txtSenha"),"'","")set verifica = new ValidaLogin  verifica.strUsuario = session("usuario")  verifica.strSenha   = session("senha")verifica.VerificaLoginresponse.Write("PASSOU!! VALIDADO OK!!")%>

 

Codigo Referente a Classe

<%'***** CRIANDO CLASSE DE VALIDACAO DE LOGINClass ValidaLogin  Dim strUsuario, strSenha, strSQL, conn, RS Private Sub AbrirConexao	Set conn = CreateObject("ADODB.Connection")	Set RS = CreateObject("ADODB.Recordset")	conn.Open "dbq=C:\BSC\web\manutencao\dados\dados.mdb;driver={Microsoft Access Driver (*.mdb)}"  end Sub  Sub VerificaLogin	Call AbrirConexao	  		session("usuario") = replace(request("txtLogin"),"'","")	session("senha")   = replace(request("txtSenha"),"'","")	 strSQL = " SELECT "	 strSQL = strSQL & " UI_NOME, UI_LOGIN, UI_SENHA "	 strSQL = strSQL & " FROM "	 strSQL = strSQL & "   USUARIO_INTERNO"	 strSQL = strSQL & " WHERE "	 strSQL = strSQL & " UI_LOGIN = '"& strUsuario &"' AND "	 strSQL = strSQL & " UI_SENHA = '"& strSenha &"' "			   Set RS = conn.Execute(strSQL)		 	   if RS("UI_NOME") <> strUsuario then		 Response.Write("Errado...")	   end if	Call FecharConexao	  End Sub    Private Sub FecharConexao   If conn.State <> 0 Then conn.Close   End Sub End Class %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Function VerificaLogin()	Call AbrirConexao	  		session("usuario") = replace(request("txtLogin"),"'","")	session("senha")   = replace(request("txtSenha"),"'","")	 strSQL = " SELECT "	 strSQL = strSQL & " UI_NOME, UI_LOGIN, UI_SENHA "	 strSQL = strSQL & " FROM "	 strSQL = strSQL & "   USUARIO_INTERNO"	 strSQL = strSQL & " WHERE "	 strSQL = strSQL & " UI_LOGIN = '"& strUsuario &"' AND "	 strSQL = strSQL & " UI_SENHA = '"& strSenha &"' "			   Set RS = conn.Execute(strSQL)			   if RS("UI_NOME") <> strUsuario then		 VerificaLogin = false	   else		 VerificaLogin = true	   end if	Call FecharConexao	  End Sub

dai você chama na pagina q ta instanciando

 

If VerificaLogin() = true then

blablabla

else

blablabla

end if

 

tenta colocar parametros na funcao (nome e senha) pra ficar mais certinho o codigo... mas você pode usar esse q você fez mesmo.

 

lembrando q no caso ai a funcao nao ta verificando a SENHA

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como eu faço o retorno logico( True / False ) da funcão nessa parte

 

<%Dim verifica  session("usuario") = replace(request("txtLogin"),"'","")  session("senha")   = replace(request("txtSenha"),"'","")set verifica = new ValidaLogin  verifica.strUsuario = session("usuario")  verifica.strSenha   = session("senha")verifica.VerificaLoginresponse.Write("PASSOU!! VALIDADO OK!!")%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu oq você s estao fazendo ae eh "Function", naum eh classe...soh para constar !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sub VerificaLogin

 

em vez de sub faz ela uma >>> funcao <<< booleana

 

se retornar true, OK se false NOT (OK) ..... rsrsrs

 

flw!

Mais e isso que o Fernando_Bittencourt me corrigiu, e esta me ajudando a tentar fazer!!!

 

...só para constar!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae rapaz, testei aqui e esta dando erro na linha em destaque...

 

Erro, parametros insuficientes, eram esperados 1

Olhei os parametros e os mesmos estao vindo vazios, so que esse pagina e a que eu faco referencia a pagina do FORM principal.

 

EX...:

PAGINA PRINCIPAL(FORM) >>> VERIFICA.ASP

 

 

A Pagina Verifica.asp esta com o codigo abaixo...

Function VerificaLogin()	Call AbrirConexao	  		session("usuario") = replace(request("txtLogin"),"'","")	session("senha")   = replace(request("txtSenha"),"'","")	 strSQL = " SELECT "	 strSQL = strSQL & " UI_NOME, UI_LOGIN, UI_SENHA "	 strSQL = strSQL & " FROM "	 strSQL = strSQL & "   USUARIO_INTERNO"	 strSQL = strSQL & " WHERE "	 strSQL = strSQL & " UI_LOGIN = '"& session("usuario") &"' AND "	 strSQL = strSQL & " UI_SENHA = '"& session("senha") &"' "		>>>>>	   Set RS = conn.Execute(strSQL) <<<<<<			   if RS("UI_NOME") <> strUsuario then		 VerificaLogin = false	   else		 VerificaLogin = true	   end if	Call FecharConexao	  End Sub

O erro esta na linha em destaque!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah saquei .... você tem q passar isso na pagina q instancia a classe... e fzr a variavel NA CLASSEoh sohpagina_q_instancia_a_verificaasp.aspverifica.variaveldonome = request("txtLogin")verifica.varaveldasenha = request("txtSenha")ai você chama a funcao fazendo aquele if la...If verifica.VerificaLogin thenetc....Na pagina verifica . asp você define as variaveis dentro da classeDim variaveldonome, variaveldasenhaai usa elas concatenadas na consulta SQL... em vez da session...eh isso ae abrazz!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

e tem um pouco mais, não entendi muito bem isso?!!

CODE

pagina_q_instancia_a_verificaasp.asp

 

>>verifica.variaveldonome = request("txtLogin")

>>verifica.varaveldasenha = request("txtSenha")

 

ai você chama a funcao fazendo aquele if la...

 

If verifica.VerificaLogin then

etc....

 

 

Se estou no meu formulario.asp e o mesmo ira chamar a VERIFICA.asp que contem a funcao, como posso fazer um

REQUEST dentro da propria pagina formulario.asp!http://forum.imasters.com.br/public/style_emoticons/default/excl.gif!??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Srs.

 

Está havendo uma pequena confusão .......

 

Vamos por partes, como diria Jack. !!!

 

Usando classes

Class MinhaClasse	Sub ValidaUsuario()	End subEnd Class

Passando parâmetros (IN) para a função

Class MinhaClasse	Sub ValidaUsuario(ds_usuario,ds_senha)	End subEnd Class

Agora o lance legal

Passando parâmetros (IN / OUT) para a função

IN = Apenas recebe informações

IN / OUT = Recebe e retorna informação

Passando parâmetros (IN) para a função

Class MinhaClasse	Sub ValidaUsuario(ByVal ds_usuario,ByVal ds_senha,ByRef fl_logado)	End subEnd Class

Quando usamos parâmetro "BYREF", on invés do compilador criar um novo espaço na memória, ele usa o mesmo espaço utilizado pela variavel criada, portanto, nessa hipótese, é possível passar uma informação para um parâmetro e receber outra no mesmo parâmetro

 

Utilização

Set objClass = New MinhaClasse	  fl_logado = false	  Call objClass.ValidarUsuario(ds_usuario,ds_senha,fl_logado)	  	  if fl_logado then			'Usuário e senha corretos			else			'Usuário e senha incorretos	 End ifSet objClass = Nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.