Ir para conteúdo

POWERED BY:

Arquivado

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

alefaith

Senha para cada usuario

Recommended Posts

Boa noite pessoal, sou um novato em ASP, e tenho lido bastante esse forum a procura de respostas para as minhas duvidas.

Porem, cheguei num ponto, em que estou perdido, e nao acho nenhuma forma de fazer o que eu quero:

 

Estou fazendo um trabalho, onde cadastro num banco Access, um condominio ficticio, com apto, bloco, dados pessoais de cada apto, etc.

a intenção é de que cada morador atravez de login e senha, possa acessar o seu respectivo cadastro, sem ter acesso aos demais apartamentos. O objetivo disso seria para o morador acessar o seu apto e alterar as informações de cadastro que julgar necessarias.

Pois bem. esta tudo praticamente pronto, incluindo, alterando e deletando registros tranquilamente, o problema é que nao sei ainda como fazer para que cada apto/bloco tenha um usuario e senha para ter acesso somente ao seu apto/bloco.

 

Por exemplo:

 

o morador do apto 11-A teria acesso apenas ao cadastro do 11-A; o morador do 213-B teria acesso somente a esse apto/bloco, e assim por diante.

 

Tenho 2 tabelas, uma com todos os cadastros e a outra de login e senha, devidamente relacionadas, acredito eu, pelo campo codigo.

 

Ja tenho um script de login e senha, porem ele é "genérico"... eu acesso qualquer um dos registros com um user e senha cadastrada no banco (que nesse caso seria apenas para a administração desse condomínio, que teria acesso a todos os registros. e não individualmente por apto/bloco)

Será que alguem pode me dar aí uma luz de como fazer isso?

eu tinha pensado em fazer assim: para cada apto/bloco cadastrado no banco, teria um username e uma senha, e de modo algum esse user e essa senha poderao servir para visualizar as informações de outro apto/bloco.

 

Nao sei se consegui explicar bem o que eu to precisando..

Andei procurando aqui no forum uma resposta pra isso, mas ainda nao encontrei.

Desde ja agradeço a atenção e paciência de voces com alguem que está apenas começando nessa área, e peço desculpas se postei em local errado.

 

obrigado

 

Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o código que você usa para criar os administradores... mais tipow você pode criar por niveis... ex: bloco1 = nivel1 ... bloco2 = nivel2 ... em alguns sistemas fiz parecido com isso ex: nivel administrador = nivel1 (ele pode cadastrar mais adm) ... nivel2 (ele apenas alimenta o site)

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, beleza?

entao cara...nao tem um codigo pra criar admnistradores... Eu simplesmente criei direto no banco, na tabela usuarios, um user e uma senha, pra testar.

e com ela eu acesso qualquer apto. Alias, nem sei se fiz o correto, pq primeiro eu criei tudo, pra depois me preocupar com a senha. Então, a principio, tinha acesos a tudo.. todos os cadastros para visualizar, alterar, deletar, incluir. Com a tabela de senha, agora, tem a pagina de login, e se a senha estive incorreta o acesso é negado, porem se estiver certa, tem acesso a todos os cadastros, e não somente aquele que foi digitado no form para escolher o apto e o bloco.

 

Eu tava pensando agora, e se eu comparar o codigo(id) de uma tabela com a outra, sera que funciona? tipo se o id do apto13A = id user13A entao teria acesso a esse apto, senão daria acesso negado.

 

Com relação aos niveis que você mencionou realmente acho que terei que fazer isso pra diferenciar a administração dos usuarios comuns. Ótima ideia você deu. :)

 

bom, vou dormir, que ja to aqui quebrando a cabeça a horas. Rs.

amanha com a cabeça mais "sã" volto a pensar nisso.. hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

cada usuario possui uma ID ou chave - prefiro chaves do que id, mas nao vem ao caso

 

creio que cada informação será uma tabela, entao cada tbl devera ter uma coluna que recebe o identificador(id) do usuario, logo, ele so ve e so altera o que contiver a sua id

 

é assim que funciona

 

 

 

 

tblUsuario: user | id

 

desisto | 756

 

alefaith | 757

 

tblApt: Apartamento | idUser

 

casa dos sonhos | 756

 

casa do alefaith | 757

 

 

 

 

 

 

 

 

 

 

eu so altero o meu, pois a tblApt possui a minha chave

 

 

 

 

 

 

 

acho que é isso que você quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

cada usuario possui uma ID ou chave - prefiro chaves do que id, mas nao vem ao caso

 

creio que cada informação será uma tabela, entao cada tbl devera ter uma coluna que recebe o identificador(id) do usuario, logo, ele so ve e so altera o que contiver a sua id

 

é assim que funciona

 

 

 

 

tblUsuario: user        | id

 

                  desisto    | 756

 

                  alefaith   | 757

 

tblApt:       Apartamento          | idUser

 

                 casa dos sonhos     | 756

 

                 casa do alefaith      | 757

 

 

 

 

 

 

 

 

 

 

eu so altero o meu, pois a tblApt possui a minha chave

 

 

 

 

 

 

 

acho que é isso que você quer

 

opa, beleza Desisto?

é isso mesmo que to querendo fazer. Mas só explicando melhor, eu tenho uma tabela com os dados de todos os aptos e cada registro desses aptos tem um id. Vou tentar comparar o id de cada apto com o id de cada usuario da tabela usuarios pra ver se dá certo.

Obrigado a voces pela ajuda ate agora.

O problema é que como eu deixei pra fazer a tabela de usuarios por ultimo, acho que vou ter que incluir o mesmo numero de usuarios com suas respectivas senhas um a um "casando" com o id da tabela geral neh?

Vo pesquisar sobre essa comparação de id, pq do jeito que esta agora, o unico usuario que tenho cadastrado na tabela usuarios, consegue alterar qualqer registro da tabela geral, mesmo tendo o mesmo id do primeiro registro da tabela geral.

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe um artigo sobre como criar login, k vai solucionar seu problema, dá uma pesquida no forum e nos artigos

Compartilhar este post


Link para o post
Compartilhar em outros sites

como estao suas tabelas? o que você usou para identificar os usuarios?

 

você tem usuarios cadastrados e ja tem apartamentos cadastrados por eles?

 

 

 

 

de mais detalhe

 

as vezes um simples loop resolve o problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

um sistema de login , onde o user pode alterar seus dados, e é bom você ter um administrador, onde você exclui,inclui,requisicoes de senha, etc

Compartilhar este post


Link para o post
Compartilhar em outros sites

boa noite galera, beleza?

então, eu tinha pensado em uma coisa bem simples, como por exemplo criar um campo senha na propria tabela geral de cadastro de moradores, e atravez desse campo senha, dar ou nao acesso ao usuario do apto. Será que isso seria possivel?

 

O problema é que esse cadastro sou eu que faço. Existe uma ficha cadastral de cada apto e eu passo tudo pro banco de dados. 80% dos aptos ja estao cadastrados no banco. Se eu for permitir que o proprio usuario cadastre sua senha, terei que ter mais uma pagina para isso, onde ele iria se identificar pelo apto e bloco, porem nao acho uma boa ideia, pq ai uma pessoa poderia cadastrar uma senha pra outro apto. Eu tava pensando que seria mais viavel eu cadastrar cada senha e passar essas senhas para os usuarios, e na hora que eles fossem logar, poderia colocar um campo pra eles trocarem a senha.

 

Na minha cabeça a coisa é muito simples. tem o id do apto, o numero do apto o bloco e os outros dados desse apto... Eu colocaria uma senha pra cada um desses id's na mesma tabela. Por exemplo, no apto 11-A , onde o id = 1 eu cadastraria uma senha que seria o acesso para esse usuario acessar os dados dele. Nem imagino se iria funcionar assim, com o campo senha na mesma tabela, ao invez de uma tabela separada só pra login e senha, eu teria que testar pra ve se funcionaria. Só queria fazer a coisa o mais simples possivel. Imagino eu que se na pagina de login, tendo os campos no form "apto", "bloco" e "senha", já deva funcionar, só teria que ser confirmado de alguma forma se a senha digitada pertence a esse ID.

 

Vou ver o que consigo com essa forma "simples" de fazer. Obrigado pelas dicas, e xanburzum, valeu pelo exemplo de login. Vou dar uma estudada nesse exemplo, e ver como posso aproveitar o que tem ali.

 

até o proximo post.

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah, esqueci d eum detalhe: por enquanto esta da seguinte forma:

 

Tem um link na pagina principal que vai pro cadastro de moradores. Nessa pagina tem um form pra preencher o apto e o bloco. É checado primeiro se o apto e o bloco digitados no form, constam no banco de dados. Se não constam, vao pra uma pagina para fazer o cadastro do apto. Se constar no banco, vai pra pagina de login, e nessa pagina eu ira confirmar se a senha digitada confere com o registro do id do apto que ela digitou no form.

 

Ex: Apto: 11 Bloco: A

 

1- confirmo se existe esses dados no banco

 

2- Confirmado isso, vai pra pagina de login senão vai para a pagina de cadastro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi pessoal, bom dia.

 

tô com o seguinte problema.

 

segue abaixo o codigo da pagina de resposta do login (quando é digitado o login e a senha, vai para a seguinte pagina:

<%


Set conn=Server.CreateObject("ADODB.Connection")
drv= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("bd/cadastro.mdb") & ";"
conn.Open drv

login=Request.QueryString("login") 
senha=Request.QueryString("senha") 

sql = "SELECT * FROM  CadastroMoradores WHERE login = '" & login &"' AND senha = '" & senha & "' "


Set rsLogar = Server.CreateObject("ADODB.Recordset")
rsLogar.Open sql, conn


if (rsLogar.eof) Then

Response.Write "ERRO - Login ou Senha incorretos"

Else

Session("entrada") = "sim"
Session("login") = rsLogar("login")

Response.redirect("consulta2.asp")


End If

%>

Eu trago do form da pagina de login, o login e a senha e faço o Select com essas informações.

Eu preciso passar pelo menos o ID para essa pagina consulta2.asp pra que ele ja abra os dados do apto mas nao to conseguindo passar pelo response.redirect. Como posso fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha, nao estou entendendo qual a sua duvida... acho que você esta enbolando uma coisa que é simples

 

você nao vai permitir que o usuario faca alteração, nem vai deixa-lo criar a senha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha, nao estou entendendo qual a sua duvida... acho que você esta enbolando uma coisa que é simples

 

você nao vai permitir que o usuario faca alteração, nem vai deixa-lo criar a senha?

 

quero que ele tenha acesso aos dados do apto dele, pra ele alterar se ele quiser.

 

Se eu conseguisse depois de fazer o login, passar algum parametro, como o Id dele pra outra pagina, ai conseguiria abrir nessa outra pagina a consulta do apto dele com a opção para alterar o cadastro, nao é?

 

Do jeito que eu tava fazendo antes tava redundante:

Ele digitava o apto e o bloco, ai ia pra pagina de login, digitava login e senha e voltava pra pagina onde digita o apto e o bloco novamente.. só que ai ele ja tinha acesso ao apto dele a a qualquer outro apto que ele quisesse. Esse é o problema.

 

Quero pular essa parte que ele tem que digitar novamente o apto e o bloco, pq se ele digitar qualquer outro apto, ele acessa tranquilamente.

O certo, seria depois de digitar o login e a senha, abrir o cadastro dele.

nossa... tah punk esse negocio.. rs...vo dormir que ja to babando aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe trank, quando você acordar o pessoal deixara umas dicas...

 

a minha é o seguinte

 

1) fulano fez o login

 

2) foi p/ a pagina com os apts dele, cada apt com o link p/ editar

 

3) fulano clicou no apt de id 756, e vai p/ a pagina editaAPT.asp?id=756

 

4) na pagina editaAPT você pega via querrystring o id, depois conecta à tabela doa apts usando esse id e vai comparar

 

if session("idUsuario") = rs("chaveUsuario") then

 

você vai verificar se ele é o responsavel pelo apt

 

 

 

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew, acho que arrumei uma maneira de resolver o meu problema.

 

clicando no link consulta cadastro, to abrindo uma tela somente com um campo, pedindo pra digitar a senha. Essa senha estará previamente adicionada no banco, dentro do registro de determinado ID/apto. Entao quando o usuario vai digiar a senha , se o que ele digitar estiver correto conforme cadastrado no campo "senha" do banco, no registro dele, ele acessa o apto dele, senão se a senha nao bater, vai pra pagina informando que a senha esta errada, e só com um link pra voltar pro login.

Por exemplo vamos supor que a senha do apto 11-A seja teste123.

na hora que ele digitar a senha no campo e clicar em conectar, vai pra proxima pagina que faço um select onde senha = a variavel senha que peguei pela querystring. E pelo select, vai me trazer tudo que tiver na tabela correspondente a essa senha. Caso o que ele digitou nao esteja cadastrado no registro dele, recebe uma mensagem de senha incorreta, senao, abre o cadastro dele. O estranho é que nao faço nenhuma autenticação, rs... somente comparo o que ele digitou no campo senha, com o que tem adicionado no banco de dados. Na verdade é como estava antes de eu tentar colocar senha. Só que antes os campos do form eram apto, e bloco, por isso conseguia abrir qualquer cadastro, Agora sem esses campos, nao tem como o usuario entrar em outro apto que nao seja o dele, com a devida "senha". O que voces acham? posso fazer dessa forma? Eu testei aqui,e funcionou. O unico incoveniente é eu atribuir uma "senha" pra cada apto..300 aptos = 300 senhas diferentes... haja criatividade pra tanta senha.... mas, como diria o filósofo... "o que é um peido pra quem já tá cagado?" rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

senha pela querystring? senha como id?

 

sistema errado hehehe

 

 

 

 

você é iniciante em programacao?

 

você esta pecando e muito na segurança e na logica

 

nao precisa de senha na tabela do apt, imagina quando fulano alterar a senha, tera que alterar nessa tabela tb

 

 

 

 

você esta dificultando uma coisa que é simples, nao tente reinventar a roda (nao por enquanto)

 

siga aquele exemplo que te dei ai em cima, é assim a logica

 

 

 

 

cada usuario tem um id, na tabela dos usuarios e essa id vai ser usada em absolutamente tudo

 

nao use a senha para comparar na tabela dos apt

 

 

 

 

a nao ser que eu tenha entendido errado

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao inves de fazer a verificacao de login e senha na mesma SQL, utilize esta forma, onde você busca pelo login e depois , converte ele minuscolu(caso suas senhas sejam todas minuscula) e depois compara com seu bd, fica uma boa pratica de programacao, masi gerenciavel e menos vulneravel a sqlinject

ele pode ser mais completo, por exemplo, usando cookies e pegando o ultimo acesso do user e gravando em um bd

 

<% Option Explicit
'declara as var
dim varsenha, varlogin, conexao ,rs, SQL, conDBQ, constring
'recupera as var
varlogin=Trim(request.form("login"))
varsenha=Trim(request.form("senha"))
if varlogin="" then
response.redirect("logincli_form_treina.asp?msgeof=1")
end if
if varsenha="" then
response.redirect("logincli_form_treina.asp?msgeof=2")
end if
if Session("logado")=True then
response.redirect("logincli_form_treina.asp?msgeof=5")
end if 
%>
<!--#include file="conn/conexao1.asp"-->
<%
 call abreconexao
'cria o recordset
Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
	if rs.eof then
	   response.redirect("logincli_form_treina.asp?msgeof=3")
	else
		if Lcase (varsenha) <> Lcase(rs("senha")) then
			response.redirect("logincli_form_treina.asp?msgeof=4")
			session("logado")=False
		else
			session("logado")=True
			session("senha")=varsenha
			session("login")=varlogin
		response.redirect("administracao.asp")
		end if
set rs=nothing
call fechaconexao%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao inves de fazer a verificacao de login e senha na mesma SQL, utilize esta forma, onde você busca pelo login e depois , converte ele minuscolu(caso suas senhas sejam todas minuscula) e depois compara com seu bd, fica uma boa pratica de programacao, masi gerenciavel e menos vulneravel a sqlinject

ele pode ser mais completo, por exemplo, usando cookies e pegando o ultimo acesso do user e gravando em um bd

 

<% Option Explicit
'declara as var
dim varsenha, varlogin, conexao ,rs, SQL, conDBQ, constring
'recupera as var
varlogin=Trim(request.form("login"))
varsenha=Trim(request.form("senha"))
if varlogin="" then
response.redirect("logincli_form_treina.asp?msgeof=1")
end if
if varsenha="" then
response.redirect("logincli_form_treina.asp?msgeof=2")
end if
if Session("logado")=True then
response.redirect("logincli_form_treina.asp?msgeof=5")
end if 
%>
<!--#include file="conn/conexao1.asp"-->
<%
 call abreconexao
'cria o recordset
Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
	if rs.eof then
	   response.redirect("logincli_form_treina.asp?msgeof=3")
	else
		if Lcase (varsenha) <> Lcase(rs("senha")) then
			response.redirect("logincli_form_treina.asp?msgeof=4")
			session("logado")=False
		else
			session("logado")=True
			session("senha")=varsenha
			session("login")=varlogin
		response.redirect("administracao.asp")
		end if
set rs=nothing
call fechaconexao%>

Fala galera, beleza? felis Natal pra todos.

:)

Entao, respondendo a pergunta acima, realmente sou novato em ASP e em lógica. por isso que to apanhando pra fazer uma coisa "simples".

andei pesquisando e achei o innerjoin. to tentando fazer com ele, usando 2 tabelas. uma pro cadastro e outra de login e senha.

o sql está assim:

 

sql = SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE usuario = login 

Mas nao esta funcionando. Dá o seguinte erro:

 

Erro de sintaxe

/resposta.asp, line 12, column 6

sql = SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE usuario = login

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.