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

Validar Uma Alteração Usando A Sessão


Dc Spoc

Pergunta

Galera,

Estou com um problema e não consigo resolver. Espero q vocês me ajudem. O problema é o seguinte:

Estou desenvolvendo um sistema de administração de uma busca interna, tá quase tudo pronto, inclusão, exclusão alteração...

Na parte de alteração da senha de administrador, eu quero fazer o seguinte, o usuário que está logado pode fazer uma busca para ver quais são os outros administradores, e quando aparecer a lista de administradores tem dois links, um para alterar a senha e outro para apagar o usuário. Só que eu quero que cada um só tenha permissão para alterar apenas a sua senha. Como eu faço isso?

Todo mundo alterando e deletando qualquer usuário funciona, agora quando eu tento usar variáveis para comparar a sessão com o id do usuário aí dá pau.

Ajudem-me.

Antecipadamente agradeço.

valeu!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

hum

pelo que eu entendi, você faz um select na tabela do banco, e ele te retorna todos os dados de todos os usuarios.

agora, o certo seria você dar um select usando o WHERE, aí você compara o usuario logado..

coloca seu codigo aí preu ver como ele tah

que aí a galera aí ajuda

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Pelo q entendi você quer mostrar todos mas cada admin só pode alterar o seu.

Tenta fazer algo assim. O exemplo q vou te dar é como se você estivesse trabalhando com session para o administrador logado, ok?

<%
admin=Session("admin")
rs.Open "SELECT * FROM tabela_administrador", Conexao

While not rs.EOF
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td colspan="2"><div align="center">Administradores</div></td>
  </tr>
  <tr> 
    <td width="42%"><%=rs.fields("nome").value</td>
    <td width="58%"><%if rs.fields("nome").value = admin then%><a href=editar.asp?id=<%=rs.fields("id").value%><% end if %></td>
  </tr>
</table>
<%
rs.Movenext
Wend
%>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Marcelo Canevello Ferreira

você deve testar se o usuário tem direito a alterar aquela senha ... só isso ... minha sugestão é que você crie um campo na tabela de usuário com os direitos dele, pode ser um binário ou qualquer outra coisa... e quando for alterar a senha você testa se ele tem direito ou não a alterar a senha

abraço

Marcelo S/Pitch

Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço pela ajuda de vocês.

Neste meio tempo, eu achei uma solução prática, enquanto não acho a definitiva que foi a segiunte: eu tirei a opção de alterar a senha na página que mostra os administradores cadastrados, e criei uma página para alteração de senha, quando o usuário cliqua na página ela faz um select usando o ID e NOME identificados na sessão, então quem está logado só poderá alterar a sua própria senha.

A variável ID é enviada pelo link

<a href="alterar_senha.asp?id=<%=session("id")%>">Alterar Senha</a>
O código que faz a busca é este:
<%

id= request.QueryString("id")

set procura = conn.Execute("select * from admin WHERE id =" & id& "")
Do while not procura.EOF

id=procura("id")
admin=procura("admin")
%>
e o código que faz a alteração é este:
<%
conn.Execute("update admin set admin='"&session("admin")&"',senha='"&Request.Form("senha_nova")&"'where id="&session("id")&"")
Response.Redirect"principal.asp"
%>

O que vocês me dizem?

Fiz certo?

Link para o comentário
Compartilhar em outros sites

  • 0

Beleza!

É que eu coloquei no final do form

<form name="form1" method="post" action="alterar_senha.asp">

  <table width="500" border="0" align="center" class="Titulos">

    <tr>

      <td><font size="2">Id</font></td>

      <td width="80%" colspan="3"><%=id%></td>

    </tr>

    <tr>

      <td width="20%"><font size="2">Login:</font></td>

      <td colspan="3"><%=admin%></td>

    </tr>

    <tr>

      <td><font size="2">Nova senha:</font></td>

      <td colspan="3"><input name="senha_nova" type="password" id="senha_nova" maxlength="8">

        <font size="2">&nbsp;8 caracteres</font></td>

    </tr>

    <tr>

      <td>&nbsp;</td>

      <td colspan="3"><div align="center">

          <input type="submit" name="Submit" value="Alterar Senha">

        </div></td>

    </tr>

  </table>

    <%

procura.MoveNext

loop

procura.Close

set procura = Nothing

%>

</form>

Certo?

Link para o comentário
Compartilhar em outros sites

  • 0

Só que eu quero que cada um só tenha permissão para alterar apenas a sua senha

Bem, a sessio("id") é o número do ID do membro, exato?

Este ID é inteiro, ou seja, um número, correto?

E depois que você faz um select lá pelo id do cara correto?Dae você teria algo como: rs("id")

Então faça assim para verificar se são iguais os id's

If Int(Session("id")) = Int(rs("id")) then
'comandos para o membro autorizado
Else
'comandos para o membro sem permissão
End If

Então use os Int(), dae dará certo!

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