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

Login


hpires24

Pergunta

oi desculpem o incomodo mas se puderem ajudar agradecia, a minha duvida é a seguinte estou fazendo um aaplicação em ASP e quando efectuo o dois logins iguais a aplicação deixa e eu queria q isso não acontece-se, ou seja restringir o login, ou seja qd estou a introduzir o login no formulário ele verificasse na base de dados se o login já existe caso fosse verdade dar uma mensagem de erro e não me é possivel com o codigo q tenho em baixo se me puderem ajudar agradecia o codigo q tenho é o seguinte:

 ficheiro: Funcionários/criar.asp
' 
'********************************************************************************************%>
<!--#include file="../includes/main_page_header.asp"-->

<!-- #include file="../includes/main_page_open.asp"-->


<font color="Red"><%=Session("strErrorMessage")%></font><% Session("strErrorMessage") = ""%>

[B]<%
If Login =  sql_Login() then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("login_existente")
End If%>[/B]

<table cellpadding="2" cellspacing="0" align="center" width="450">
	<tr><td </td>&nbsp;</tr>
	<tr><td colspan="2" bgcolor="<%=gsColorHighlight%>" class="tblheader" align="center"><%=dictLanguage("Criar_Funcionarios")%></td></tr>
</table>

<form method="post" action="processa_criar.asp" name="strForm" id="strForm">
	<table class="tblborder2px" cellpadding="1" cellspacing="1" align="center" width="450">

     <tr>
  	<td><b class="bolddark"><%=dictLanguage("Login")%>:</b><font class="alert">*</font></td>
  	<td><input name="Login" size="20" value='<%=Session("login")%>' class="formstyleShort" maxlength="100"></td>

  </tr>    
  
     <tr>
  	<td><b class="bolddark"><%=dictLanguage("Nome")%>:</b><font class="alert">*</font></td>
  	<td><input name="Nome" size="20" value='<%=Session("nome")%>' class="formStyleLong" maxlength="100"></td>
  </tr>


  <tr>
  	<td><b class="bolddark"><%=dictLanguage("categorias")%>:</b><font class="alert">*</font></td>
      <td>
    <select name="Cat" size="1" class="formStyleLong">
    <option value=""><%=dictLanguage("Select")%></option>  	
<%
sql = sql_GetCategorias()
Call RunSQL(sql, rsCategorias)
while not rsCategorias.EOF%>
      <option value="<%=rsCategorias("Categoria_ID")%>" <%if trim(session("Cat")) = trim(rsCategorias("Categoria_ID")) then Response.Write "Selected"%> > <%=rsCategorias("Categoria_descricao")%></option>
<%	rsCategorias.MoveNext
wend
rsCategorias.close
set rsCategorias= nothing %>
    </select>
  	</td>
  </tr>

     <tr>
  	<td><b class="bolddark"><%=dictLanguage("Email")%>:</b></td>
  	<td><input name="email" size="20" value='<%=Session("email")%>' class="formStyleLong" maxlength="100"></td>
  </tr>
  
     <tr>
  	<td><b class="bolddark"><%=dictLanguage("Password")%>:</b><font class="alert">*</font></td>
  	<td><input type="password" name="senha" size="20" value='<%=Session("senha")%>' class="formstyleShort" maxlength="100"></td>
  </tr>  

  <tr>
  	<td><b class="bolddark"><%=dictLanguage("Servico")%>:</b><font class="alert">*</font></td>
      <td>
    <select name="Serv" size="1" class="formStyleLong">
    <option value=""><%=dictLanguage("Select")%></option>  	
<%
sql = sql_GetServicos()
Call RunSQL(sql, rsServicos)
while not rsServicos.EOF%>
      <option value="<%=rsServicos("Servicos_ID")%>" <%if trim(session("Serv")) = trim(rsServicos("Servicos_ID")) then Response.Write "Selected"%> > <%=rsServicos("Servicos_descricao")%></option>
<%	rsServicos.MoveNext
wend
rsServicos.close
set rsServicos= nothing %>
    </select>
  	</td>
  </tr>
  
  
     <tr>
  	<td><b class="bolddark"><%=dictLanguage("Telefone_Casa")%>:</td>
  	<td><input name="telefonecasa" size="20" value='<%=Session("telefonecasa")%>' class="formStyleLong" maxlength="100"></td>
  </tr>
  
     <tr>
  	<td><b class="bolddark"><%=dictLanguage("Telemovel")%>:</font></td>
  	<td><input name="telemovel" size="20" value='<%=Session("telemovel")%>' class="formStyleLong" maxlength="100"></td>
  </tr>
  
     <tr>
  	<td><b class="bolddark"><%=dictLanguage("Extensao")%>:</b><font class="alert">*</font></td>
  	<td><input name="extensao" size="20" value='<%=Session("extensao")%>' class="formStyleLong" maxlength="100"></td>
  </tr>
  
   <tr>
   <!--<form method="post" action="upload.asp" enctype="multipart/form-data" id=form2 name=form2-->
    	<td><b class="bolddark"><%=dictLanguage("Caminho_Ficheiro")%></b> </td>
    	<td><input type="File" name="Foto" class="formstyleLong"></td>
    	<!--/form-->
  </tr>
  
    
    
	</table>

	<% if session("permFuncionariosAdd") then %>

	<p align="center"><input type="Submit" name="Submit" value="Criar " class="formbutton"></p>
	<% end if %>
</form>

<!--#include file="../includes/main_page_close.asp"-->
a negrito esta o codigo o qual eu tou a testar para não permitir dois logins iguais e este codigo em cima cham outra pagina asp q é a seguinte:
<%@ LANGUAGE="VBSCRIPT" %>
<%'*******************************************************************************************
'  
' ficheiro: funcionários/processa-criar.asp
' 
'********************************************************************************************%>
<!--#include file="../includes/main_page_header.asp"-->

<%
for each i in Request.Form
	session(i) = SQLEncode(Request.Form(i))
next

If session("Login") = ""  then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Login")
End If

If session("Cat") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Sem_Categoria")
End If
If session("Nome") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_NomeEmpregado")
End If
If session("Senha") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Senha")
End If
If session("Extensao") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Extensao")
End If

If session("Serv") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Sem_Servicos")
End If

if session("email") = "" then 
	session("email") = NULL
end if
if session("telemovel") = "" then 
	session("telemovel") = NULL
end if
if session("telefonecasa") = "" then 
	session("telefonecasa") = NULL
end if

If Session("strErrorMessage") <> "" then
	response.redirect "criar.asp"
End If

Act = 1

sql = sql_InserirFuncionario( _
	session("Login"), _
	session("Nome"), _
	session("Cat"), _
	session("Email"), _
	Act, _
	session("Senha"), _	
	session("Serv"), _
	session("TelefoneCasa"), _
	session("Telemovel"), _
	session("Extensao"), _
	session("Foto"))

Call DoSQL(sql)
sql = sql_InserirPermissoes( _
session ("Nome"))

Call DoSQL(sql)

%>

<!--#include file="../includes/main_page_open.asp"-->


<%
for each i in request.form 
    session(i) = ""
next
%>

<%response.redirect "default.asp"%><!--para ir para o criar permissoes fazemos criarpermissoes.asp-->

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Primeira observação:

<!--#include file="../includes/main_page_header.asp"-->

Verifique se o servidor que vai hospedar dá suporte à busca em diretórios acima, senão ocorerá um erro.

Bom, em segundo lugar, você cirou este código ou tirou de algo pronto, pois está bem confuso, além de extenso.

Mas o que posso passar pra você é o conceito:

Deixe o usuário preencher o formulário, depois de enviar, na outra página da aplicação, antes de inserir no bd, faça uma busca no bd, se encontrar algum registro semelhante aí sim, mande o usuário de volta e avise que o login ou o que você deseja já existe, obrigando-o a preencher novamente com outro nome, ok?

Não tente fazer esta verificação na página do form, pois o cara pode digitar qualquer coisa, a verificação é feita depois do envio do form.

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Sim me ajudou um pouco amigo e obrigado por ter respondido o q eu estou a tentar fazer agora é o segunite so q tb não funciona para verificar se o login já existe na bd:

<%@ LANGUAGE="VBSCRIPT" %>
<%'*******************************************************************************************
'  
' ficheiro: funcionários/processa-criar.asp
' 
'********************************************************************************************%>
<!--#include file="../includes/main_page_header.asp"-->

<%
for each i in Request.Form
	session(i) = SQLEncode(Request.Form(i))
next

[B]strConn = DB_CONNECTIONSTRING	
set conn=server.createobject ("adodb.connection")
conn.open strConn

set rs=server.createobject ("adodb.recordset")

sqlstmt= "select * from tbl_empregados  where Login= " & Request("Login") & ""
rs.open sqlstmt, conn, 3, 3

if not rs.eof 
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("login_existente")
end ifB]
else


If session("Cat") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Sem_Categoria")
End If
If session("Nome") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_NomeEmpregado")
End If
If session("Senha") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Senha")
End If
If session("Extensao") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Extensao")
End If

If session("Serv") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Sem_Servicos")
End If

if session("email") = "" then 
	session("email") = NULL
end if
if session("telemovel") = "" then 
	session("telemovel") = NULL
end if
if session("telefonecasa") = "" then 
	session("telefonecasa") = NULL
end if

If Session("strErrorMessage") <> "" then
	response.redirect "criar.asp"
End If

Act = 1

sql = sql_InserirFuncionario( _
	session("Login"), _
	session("Nome"), _
	session("Cat"), _
	session("Email"), _
	Act, _
	session("Senha"), _	
	session("Serv"), _
	session("TelefoneCasa"), _
	session("Telemovel"), _
	session("Extensao"), _
	session("Foto"))

Call DoSQL(sql)
sql = sql_InserirPermissoes( _
session ("Nome"))

Call DoSQL(sql)

%>

<!--#include file="../includes/main_page_open.asp"-->


<%
for each i in request.form 
    session(i) = ""
next
%>

<%response.redirect "default.asp"%><!--para ir para o criar permissoes fazemos criarpermissoes.asp-->

o q estara de errado neste cofigo o q eu estou a fazer q esta a negrito é o seguinte eu vou a base de dados e comparo o login q estou a introduzir no formulario com os logins q estao na base de dados se os logins existirem na base de dados então da um erro é isso q quero e estou a tentar fazer em cima nesse codigo mas não funciona me poderá ajudar???

Link para o comentário
Compartilhar em outros sites

  • 0

Amigão...

Você é Português? hehe

Olha só faz assim:

<%
'Aqui você pega do form os dados login e senha
LOGIN = Lcase(Request.Form("LOGIN"))
SENHA = Lcase(Request.Form("SENHA"))
'********************************************
'SQL de acesso
SQLBUSCA = "SELECT * FROM TABELA WHERE LOGIN LIKE '%" + Replace(LOGIN, "'", "''") + "%' AND SENHA LIKE '%" + Replace(SENHA, "'", "''") + "%'"
Set bd = Conexao.Execute(SQLBUSCA)

'Verifica se algo foi encontrado
If NOT bd.EOF Then
'Verifica exatidão das informações
CODIGO2 = bd("ADM")
SENHA2 = bd("SENHA")
End If
If LOGIN = CODIGO2 AND SENHA = SENHA2 Then
'Se confirmada a exatidão atribui sessão com permissão de acesso
Session("AUTORIZADO") = bd("Código")
'Redireciona enfim o pobre indivíduo
Response.Redirect "restrito.asp"
Else
'Leva de volta o incauto
Response.Redirect "default.asp"
End If
%>

Olha aí em cima, não tem muito o que explicar. Aconselho a mexer um pouco ou substituir aquela sua confusão por estas poucas linhas que verifica e faz o login. Outro conselho... Pegue campo por campo do formulário que você precisa, pode dar mais trabalho, mas na minha humilde opinião é o melhor a ser feito.

Boa sorte em seu projeto. laugh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo mas é assim eu não poderei substituir todo o meu codigo so por esse porque depois não me deixa introduzir no formulario de funcionarios q tenho os outros valores como numero telefone nome etc esta entendendo é q eu tenho um formulario q se chama funcionarios e eu ao criar os funcionarios como esta no codigo q eu lhe enviei de inicio tenho q inserir login e ai é q eu quero comparar se o login q eu estou a introduzir é igual ao login que esta na base de dados entende amigo.

PS: desculpe estar sempre a chatear mas necessito disso e não me consigo fazer

Link para o comentário
Compartilhar em outros sites

  • 0

Amigao você esta-me ajudando mesmo mt a serio você deve ser um cranio smile.gif em ASP olhe vou-lhe mostrar o codigo q eu adaptei as minhas necessidades so q esse codigo da-me um erro de sql q eu lhe vou mostrar tb no fim deste codigo eu te digo o erro:


<%@ LANGUAGE="VBSCRIPT" %>
<%'*******************************************************************************************
'  
' ficheiro: funcionários/processa-criar.asp
' 
'********************************************************************************************%>
<!--#include file="../includes/main_page_header.asp"-->

<%
for each i in Request.Form
	session(i) = SQLEncode(Request.Form(i))
next

LOGIN = Lcase(Request.Form("Login"))

sql = sql_Login_iguais()
Call RunSQL(sql, rslogin)


if not rslogin.eof  then

CODIGO2 = rslogin("Login")

End If
If LOGIN = CODIGO2  Then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("login_existente")
end if



If session("Cat") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Sem_Categoria")
End If
If session("Nome") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_NomeEmpregado")
End If
If session("Senha") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Senha")
End If
If session("Extensao") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Extensao")
End If

If session("Serv") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Sem_Servicos")
End If

if session("email") = "" then 
	session("email") = NULL
end if
if session("telemovel") = "" then 
	session("telemovel") = NULL
end if
if session("telefonecasa") = "" then 
	session("telefonecasa") = NULL
end if

If Session("strErrorMessage") <> "" then
	response.redirect "criar.asp"
End If

Act = 1

sql = sql_InserirFuncionario( _
	session("Login"), _
	session("Nome"), _
	session("Cat"), _
	session("Email"), _
	Act, _
	session("Senha"), _	
	session("Serv"), _
	session("TelefoneCasa"), _
	session("Telemovel"), _
	session("Extensao"), _
	session("Foto"))

Call DoSQL(sql)
sql = sql_InserirPermissoes( _
session ("Nome"))

Call DoSQL(sql)

%>

<!--#include file="../includes/main_page_open.asp"-->


<%
for each i in request.form 
    session(i) = ""
next
%>

<%response.redirect "default.asp"%><!--para ir para o criar permissoes fazemos criarpermissoes.asp-->

onde a fumcao sql = sql_Login_iguais esta definida noutro ficheiro e e chamda atraves <!--#include file="../includes/main_page_header.asp"--> e a funcao é :

Function sql_Login_iguais()
	dim sql	
	sql = "Select Login from tbl_empregados where Login Like "'%" + Replace (Login, "'", "''")
	sql_Login_iguais = sql
end Function

so q da-me um erro no browser do tipo:

Error Occured:

Error # -2147217900 Erro de sintaxe na cadeia na expressão de consulta 'Login Like '%'.

SQL = Select Login from tbl_empregados where Login Like '%

Obrigado se você precisar de mim já sabe q pode contar veja o codigo acima adaptado as minhas necessidades mas com a logica q você me ensinou

Link para o comentário
Compartilhar em outros sites

  • 0

Amigao olhe esse erro descrito em cima já o consegui resolver portanto não de intresse ao q eu escrevi em cima mas sim ao q vai agora. o q se esta a passar é o seguinte:eu qd estou a preencher o formulario quando eu não introduzo o login ele nem me da erro de falta de login portanto acho eu q nem esta a fazer esse teste o codigo q estou a fazer é o seguinte:

<%@ LANGUAGE="VBSCRIPT" %>
<%'*******************************************************************************************
'  
' ficheiro: funcionários/processa-criar.asp
' 
'********************************************************************************************%>
<!--#include file="../includes/main_page_header.asp"-->

<%
for each i in Request.Form
	session(i) = SQLEncode(Request.Form(i))
next

LOGIN = Lcase(Request.Form("Login"))

sql = sql_Login_iguais()
Call RunSQL(sql, rslogin)


if not rslogin.eof  then

CODIGO2 = rslogin("Login")

End If
If LOGIN = CODIGO2  Then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("login_existente")
end if



If session("Cat") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Sem_Categoria")
End If
If session("Nome") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_NomeEmpregado")
End If
If session("Senha") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Senha")
End If
If session("Extensao") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Erro_sem_Extensao")
End If

If session("Serv") = "" then
	Session("strErrorMessage") = Session("strErrorMessage") & "<br>" & dictLanguage("Sem_Servicos")
End If

if session("email") = "" then 
	session("email") = NULL
end if
if session("telemovel") = "" then 
	session("telemovel") = NULL
end if
if session("telefonecasa") = "" then 
	session("telefonecasa") = NULL
end if

If Session("strErrorMessage") <> "" then
	response.redirect "criar.asp"
End If

Act = 1

sql = sql_InserirFuncionario( _
	session("Login"), _
	session("Nome"), _
	session("Cat"), _
	session("Email"), _
	Act, _
	session("Senha"), _	
	session("Serv"), _
	session("TelefoneCasa"), _
	session("Telemovel"), _
	session("Extensao"), _
	session("Foto"))

Call DoSQL(sql)
sql = sql_InserirPermissoes( _
session ("Nome"))

Call DoSQL(sql)

%>

<!--#include file="../includes/main_page_open.asp"-->


<%
for each i in request.form 
    session(i) = ""
next
%>

<%response.redirect "default.asp"%><!--para ir para o criar permissoes fazemos criarpermissoes.asp-->

o sql = sql_Login_iguais() é
Function sql_Login_iguais()
	dim sql	
	sql = "SELECT * FROM tbl_empregados WHERE LOGIN LIKE '%" + Replace(LOGIN, "'", "''") + "%' "
	sql_Login_iguais = sql
end Function

e mesmo assim ele deixa-me introduzir dois funcionarios com o mesmo login e eu não quero estou a desesperar já não sei como ultrapassar esse problema.Obrigado

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...