Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
hpires24

Login

Question

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-->

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 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.

Share this post


Link to post
Share on other 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???

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
  • 0

Bom, eu dei o caminho das pedras do login, cabe a você agora, não substituir, mas adaptar às suas necessidades, boa sorte

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Cloud Computing


  • Forum Statistics

    • Total Topics
      148131
    • Total Posts
      643434
×
×
  • Create New...