Ir para conteúdo

POWERED BY:

Arquivado

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

Ben - Hur

[Resolvido] Login autenticado

Recommended Posts

Olá,

 

Estou precisando de uma verdadeira ajuda. Estou criando um sisteminha de login e senha, porém queria incrementar algumas coisas, tais como:

Verificação no banco se há um login ou um email já cadastrado, e um autenticador tipo esse do site gamevicio www.gamevicio.com.br, onde há um espaço reservado para login e senha, e ao autenticar, o site todo já reconhece sem precisar mudar a página.

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa de um sistema de login, depois é só implementar, dá uma pesquisada no forum, k existem muitos exemplos

existe até um artigo de sistema administrativo, pode te ajudar bastante, dependendo de como esta o andamento de seu projeto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

a depender do nivel onde está já seu projeto, podemos ajudar tbm a adicionar isso, mais fazer para ti vai ser mais complicado ou manda ver na dica do xan ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem ótimos exemplos...

e surgindo dificuldade estamos ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é galera, dei uma pesquisada e conseguir fazer o login. Porém, na seção que faço o cadastro para ter acesso a esse login não estou conseguindo colocar uma condição: verificar se já existe um login identico cadastrado. Dei um olhada achei bastante coisa, porém não consegui adaptar. Se alguém puder me dar uma dica agradeço. Ai vai o código

<%@LANGUAGE="VBSCRIPT"%>

<!--#include file="Connections/cadastro.asp" -->

 

<%

' *** Edit Operations: declare variables

 

MM_editAction = CStr(Request("URL"))

If (Request.QueryString <> "") Then

MM_editAction = MM_editAction & "?" & Request.QueryString

End If

 

' boolean to abort record edit

MM_abortEdit = false

 

' query string to execute

MM_editQuery = ""

%>

<%

' *** Insert Record: set variables

 

If (CStr(Request("MM_insert")) <> "") Then

 

MM_editConnection = MM_cadastro_STRING

MM_editTable = "cadastro_cliente"

MM_editRedirectUrl = "cad_log_confirm.asp"

MM_fieldsStr = "nome|value|endereco|value|cidade|value|estado|value|cep|value|email|value|t

el1|value|tel2|value|cel|value|login|value|senha|value|nivel|value"

MM_columnsStr = "nome|',none,''|endereco|',none,''|cidade|',none,''|estado|',none,''|cep|',none,''|email|',none,''|tel1|',none,''|tel2|',none,''|cel|',none,''|login|',none,''|senha|',none,''|nivel|',none,''"

 

 

' create the MM_fields and MM_columns arrays

MM_fields = Split(MM_fieldsStr, "|")

MM_columns = Split(MM_columnsStr, "|")

 

' set the form values

For i = LBound(MM_fields) To UBound(MM_fields) Step 2

MM_fields(i+1) = CStr(Request.Form(MM_fields(i)))

Next

 

' append the query string to the redirect URL

If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then

If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then

MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString

Else

MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString

End If

End If

 

End If

%>

<%

' *** Insert Record: construct a sql insert statement and execute it

 

If (CStr(Request("MM_insert")) <> "") Then

 

' create the sql insert statement

MM_tableValues = ""

MM_dbValues = ""

For i = LBound(MM_fields) To UBound(MM_fields) Step 2

FormVal = MM_fields(i+1)

MM_typeArray = Split(MM_columns(i+1),",")

Delim = MM_typeArray(0)

If (Delim = "none") Then Delim = ""

AltVal = MM_typeArray(1)

If (AltVal = "none") Then AltVal = ""

EmptyVal = MM_typeArray(2)

If (EmptyVal = "none") Then EmptyVal = ""

If (FormVal = "") Then

FormVal = EmptyVal

Else

If (AltVal <> "") Then

FormVal = AltVal

ElseIf (Delim = "'") Then ' escape quotes

FormVal = "'" & Replace(FormVal,"'","''") & "'"

Else

FormVal = Delim + FormVal + Delim

End If

End If

If (i <> LBound(MM_fields)) Then

MM_tableValues = MM_tableValues & ","

MM_dbValues = MM_dbValues & ","

End if

MM_tableValues = MM_tableValues & MM_columns(i)

MM_dbValues = MM_dbValues & FormVal

Next

MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

 

If (Not MM_abortEdit) Then

' execute the insert

Set MM_editCmd = Server.CreateObject("ADODB.Command")

MM_editCmd.ActiveConnection = MM_editConnection

MM_editCmd.CommandText = MM_editQuery

MM_editCmd.Execute

MM_editCmd.ActiveConnection.Close

 

If (MM_editRedirectUrl <> "") Then

Response.Redirect(MM_editRedirectUrl)

End If

End If

 

End If

%>

<%

set Recordset1 = Server.CreateObject("ADODB.Recordset")

Recordset1.ActiveConnection = MM_cadastro_STRING

Recordset1.Source = "SELECT * FROM cadastro_cliente"

Recordset1.CursorType = 0

Recordset1.CursorLocation = 2

Recordset1.LockType = 3

Recordset1.Open()

Recordset1_numRows = 0

%>

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara é bem simples você tem que verificar por exemplo se o email já esta cadastrado para isso veja um exemplo simples que eu fiz abaixo

 

Set Verifica = Conn.Execute("SELECT Email FROM Cadastro WHERE (Email = '"& Request.Form("Email") &"') ")
If not Verifica.EOF then
Verifica.Close
Set Verifica = Nothing
Response.Write("usuário existe")
Else
Response.Write("usuário não existe")
End If

É assim, agora com o exemplo basta você adaptar ao seu script.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de cadastrar faz um SELECT, se naun for final de arquivo pq ja existe,

e você pode redirecioná-lo para o form novamente,senaun faz o INSERT

 

'crio o rsselect para verificar se os dados jah estaun cadastrados
   set rsselect=server.createobject("ADODB.Recordset")
   'crio o SQLselect
   SQLselect="SELECT login FROM login WHERE login='"&varlogin&"'"
   rsselect.open SQLselect,conexao,1,3
   if not rsselect.eof then
   		response.redirect("incluir_form_treina.asp?msgeof=1")
		set rsselect=nothing
   else	
   		'crio o rsinsert para inseiri os dados no bd
   		 set rsinsert=server.createobject("ADODB.Recordset")
		'crio o SQLinsert pra incluir no bd
		SQLinsert="INSERT INTO login(login,senha,email) values('"&varlogin&"','"&varsenha&"','"&varemail&"')"
		rsinsert.open SQLinsert,conexao,1,3
		response.redirect("administracao_treina.asp?msg=1")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humm, sei entendi a lógica. Porém, não estou acustamado a programar em ASP, estou mais habituado a programar em pascal e c, que têm uma certa semelhança. Xanburzum, o que seria essa "conexao", se não me engano ela não foi declarada.

E me dê uma dica aonde exatamente ponho essa estrutura de condição no meu código.. seria assim?

......

  If (Not MM_abortEdit) Then
	' execute the insert
   dim varlogin
   'recupero todos os dados
   varlogin=trim(request.form("login"))
	 
  'crio o rsselect para verificar se os dados jah estaun cadastrados
   set rsselect=server.createobject("ADODB.Recordset")
   'crio o SQLselect
   SQLselect="SELECT login FROM cadastro_cliente WHERE login='"&varlogin&"'"
   rsselect.open SQLselect,conexao,1,3
   if not rsselect.eof then
		   response.redirect("cad_log2.asp?msgeof=1")
		set rsselect=nothing
   else	
 
	Set MM_editCmd = Server.CreateObject("ADODB.Command")
	MM_editCmd.ActiveConnection = MM_editConnection
	MM_editCmd.CommandText = MM_editQuery
	MM_editCmd.Execute
	MM_editCmd.ActiveConnection.Close

	If (MM_editRedirectUrl <> "") Then
	  Response.Redirect(MM_editRedirectUrl)
	End If
	End if
  End If

End If

Grato, vocês estão realmente me ajudando!

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Patrique, como citei acima estou com dificuldades em adaptar essa verificação ao meu código. Pois o mesmo já estava pronto só estou fazendo algumas adaptações. O qual local encaixaria mais especificamente esse seu código? Entre o Insert? em qual posição?

Set Verifica = Conn.Execute("SELECT Email FROM Cadastro WHERE (Email = '"& Request.Form("Email") &"') ")
If not Verifica.EOF then
Verifica.Close
Set Verifica = Nothing
Response.Write("usuário existe")
Else
Response.Write("usuário não existe")
End If

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o seu code entra quando o sistema verificar que o login não existe.

 

Quando ele verifica que existe a sua funcao deve entrar depois do if que faz a verificação que ele não existe, é mais ou menos assim, note os comentários que eu coloquei no code.

 

<%
Set Verifica = Conn.Execute("SELECT Email FROM Cadastro WHERE (Email = '"& Request.Form("Email") &"') ")
If not Verifica.EOF then
'seu codigo aqui, pois o sistema verificou que não existe aquele email dai prossegue
Else
'vai cair aqui quando verificar que o usuário existe, aqui você pode colocar uma mensagem ou um redirect
End If

Verifica.Close
Set Verifica = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Patrique eu entendi sim. A logica do processo entendi. Porém, estou adaptando o codigo e não o fiz estou com dificuldades onde encaixar ele. Por Exemplo:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=I:/inetpub/wwwroot/dermo2br/dados/dermo1.mdb;"

Set Verifica = Conn.Execute("SELECT login FROM cadastro_cliente WHERE (login = '"& Request.Form("login") &"') ")
If not Verifica.EOF then

Response.Write("AUTORIZADO")

Else
Response.Write("NÂO AUTORIZADO")
End If

Verifica.Close
Set Verifica = Nothing
%>

No meu código que está no primeiro post, estou sem saber qual parte do meu código vai entrar em Response.Write("AUTORIZADO") e em Response.Write("NÂO AUTORIZADO").

Tentei de diversas formas aqui, e dá inumeros erros. O meu form chama no action a vatiavel MM_editAction,

tentei modificá-la mas obtive inúmeros erros.

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste assim

 

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/cadastro.asp" -->

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=I:/inetpub/wwwroot/dermo2br/dados/dermo1.mdb;"

Set Verifica = Conn.Execute("SELECT login FROM cadastro_cliente WHERE (login = '"& Request.Form("login") &"') ")
If not Verifica.EOF then

MM_editAction = CStr(Request("URL"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If

MM_abortEdit = false

MM_editQuery = ""

If (CStr(Request("MM_insert")) <> "") Then

MM_editConnection = MM_cadastro_STRING
MM_editTable = "cadastro_cliente"
MM_editRedirectUrl = "cad_log_confirm.asp"
MM_fieldsStr = "nome|value|endereco|value|cidade|value|estado|value|cep|value|email|value|t
el1|value|tel2|value|cel|value|login|value|senha|value|nivel|value"
MM_columnsStr = "nome|',none,''|endereco|',none,''|cidade|',none,''|estado|',none,''|cep|',none,''|email|',none,''|tel1|',none,''|tel2|',none,''|cel|',none,''|login|',none,''|senha|',none,''|nivel|',none,''"

MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

For i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(i+1) = CStr(Request.Form(MM_fields(i)))
Next

If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If

If (CStr(Request("MM_insert")) <> "") Then

MM_tableValues = ""
MM_dbValues = ""
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
FormVal = MM_fields(i+1)
MM_typeArray = Split(MM_columns(i+1),",")
Delim = MM_typeArray(0)
If (Delim = "none") Then Delim = ""
AltVal = MM_typeArray(1)
If (AltVal = "none") Then AltVal = ""
EmptyVal = MM_typeArray(2)
If (EmptyVal = "none") Then EmptyVal = ""
If (FormVal = "") Then
FormVal = EmptyVal
Else
If (AltVal <> "") Then
FormVal = AltVal
ElseIf (Delim = "'") Then
FormVal = "'" & Replace(FormVal,"'","''") & "'"
Else
FormVal = Delim + FormVal + Delim
End If
End If
If (i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End if
MM_tableValues = MM_tableValues & MM_columns(i)
MM_dbValues = MM_dbValues & FormVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_cadastro_STRING
Recordset1.Source = "SELECT * FROM cadastro_cliente"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0

Else

Response.Write("Já Existe")

End If

Verifica.Close
Set Verifica = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, testei. Porém ele está retornando "Já Existe" antes mesmo dar um submit no form. E ele está o inverso, quando o login é igual ele cadastra. Porém quando o login é difenrete ele limpa todos os inputs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita eu troquei as bolas lá em cima, porém eu pensava que era redirecionado para esta pagina também tu não falou nada, mais vamos lá.

 

No form vamos supor que o post esteja em index.asp, coloque para index.asp?acao=cadastrar

 

Agora vamos ao code, testa ae

 

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=I:/inetpub/wwwroot/dermo2br/dados/dermo1.mdb;"

Set Verifica = Conn.Execute("SELECT login FROM cadastro_cliente WHERE (login = '"& Request.Form("login") &"') ")

If Request.QueryString("acao") = "cadastrar" then

If not Verifica.EOF then

Response.Write("Já existe")

Else

MM_editAction = CStr(Request("URL"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If

MM_abortEdit = false

MM_editQuery = ""

If (CStr(Request("MM_insert")) <> "") Then

MM_editConnection = MM_cadastro_STRING
MM_editTable = "cadastro_cliente"
MM_editRedirectUrl = "cad_log_confirm.asp"
MM_fieldsStr = "nome|value|endereco|value|cidade|value|estado|value|cep|value|email|value|t
el1|value|tel2|value|cel|value|login|value|senha|value|nivel|value"
MM_columnsStr = "nome|',none,''|endereco|',none,''|cidade|',none,''|estado|',none,''|cep|',none,''|email|',none,''|tel1|',none,''|tel2|',none,''|cel|',none,''|login|',none,''|senha|',none,''|nivel|',none,''"

MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

For i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(i+1) = CStr(Request.Form(MM_fields(i)))
Next

If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If

If (CStr(Request("MM_insert")) <> "") Then

MM_tableValues = ""
MM_dbValues = ""
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
FormVal = MM_fields(i+1)
MM_typeArray = Split(MM_columns(i+1),",")
Delim = MM_typeArray(0)
If (Delim = "none") Then Delim = ""
AltVal = MM_typeArray(1)
If (AltVal = "none") Then AltVal = ""
EmptyVal = MM_typeArray(2)
If (EmptyVal = "none") Then EmptyVal = ""
If (FormVal = "") Then
FormVal = EmptyVal
Else
If (AltVal <> "") Then
FormVal = AltVal
ElseIf (Delim = "'") Then
FormVal = "'" & Replace(FormVal,"'","''") & "'"
Else
FormVal = Delim + FormVal + Delim
End If
End If
If (i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End if
MM_tableValues = MM_tableValues & MM_columns(i)
MM_dbValues = MM_dbValues & FormVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_cadastro_STRING
Recordset1.Source = "SELECT * FROM cadastro_cliente"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0

End If
End If

Verifica.Close
Set Verifica = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muitooo Bom caraaa!! Funcionou legal! Eu tinha esquecido mesmo, perdão.

Só um detalhe, é normal quando ele retorna o "erro" de já existir cadastro, os inputs serem limpados? Ou há como manter os dados só apagando o do login no caso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use session, e coloque a session criada no input.

 

Tipo, quando entrar na seção que deu erro, antes de mandar a mensagem ou redirecionar mande gravar as cookies dos campos.

 

Lá nos inputs coloque dentro da tag value as sessions correspondentes, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

só complementando, a conexao para este arquivo é feita atraves de include

<!--#include file="conn/conexao1.asp"-->
, onde no arquivo conexao1.asp

você cria uma sub para fazer a conexao,:

 

<% '----------------------
sub abreconexao
constring="provider=microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("db/quaddra.mdb")
Set conexao=Server.CreateObject("ADODB.Connection")
conexao.open constring
end sub

sub fechaconexao
set conexao=nothing
end sub
%>

depois apenas invoca atraves de Call, exemplo

 

Option explicit
   'declaro as var
   dim varlogin, varemail, varsenha, conexao, conDBQ, constring, rsselect, SQLselect, rsinsert, SQLinsert
   'recupero todos os dados
   varlogin=trim(request.form("login"))
   varsenha=trim(request.form("senha"))
   varemail=trim(request.form("email"))
   'crio a conexao
   %>
   <!--#include file="conn/conexao1.asp"-->
   <% 'abrir a conexao
   call abreconexao
   'crio o rsselect para verificar se os dados jah estaun cadastrados
   set rsselect=server.createobject("ADODB.Recordset")
   'crio o SQLselect
   SQLselect="SELECT login FROM login WHERE login='"&varlogin&"'"
   rsselect.open SQLselect,conexao,1,3
   if not rsselect.eof then
   		response.redirect("incluir_form_treina.asp?msgeof=1")
		set rsselect=nothing
   else	
   		'crio o rsinsert para inseiri os dados no bd
   		 set rsinsert=server.createobject("ADODB.Recordset")
		'crio o SQLinsert pra incluir no bd
		SQLinsert="INSERT INTO login(login,senha,email) values('"&varlogin&"','"&varsenha&"','"&varemail&"')"
		rsinsert.open SQLinsert,conexao,1,3
		response.redirect("administracao_treina.asp?msg=1")
		set rsinsert=nothing
	end if 
	call fechaconexao %>

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.