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

Problema Com Arrays


Gnomo

Pergunta

E ae galera!!

Seguinte...

Tenho duas tabelas:

Tabela1 - AdminPermissoes

Colunas: Codigo, Permissoes, Administrador

Tabela2 - AdminPermissoesTipos

Colunas: Codigo, Tipos

Na coluna Permissoes da tabela AdminPermissoes os valores são

armazenados da seguinte forma: 1,2,3,4

Fiz um array com split para remover as virgulas, veja:

rstGeral.Open "SELECT * FROM AdminPermissoes WHERE Admin=" & lngAdminCodigo, conn
        If Not rstGeral.EOF Then
            lngPermissoes = rstGeral("Permissao")
        End If
    rstGeral.Close

    If Len(lngPermissoes) > 0 Then

        MeuArray = Split(lngPermissoes, ",",-1,1)

        TotalPerm = Ubound(MeuArray)

    End If

Só que tipo, são 9 permissões no sistema, em cada página vai ter uma variavel

lngPermCod mostrando qual o tipo de permissão da mesma, com isso ia fazer o seguinte

o admin entra na pagina e a variavel lngPermCod é igual á 5 só que na coluna Permissoes

da tabela AdminPermissoes os valores contidos são 1,2,3,4... não tem o 5, desde então

ele não tem permissão de acesso ao conteúdo, eu queria que mostrar um alert em javascript

dizendo: Você não tem acesso a este conteúdo. Já tentei usando várias formas e não obtive

nenhum resultado. alguém tem uma dica?

Desde já agradeço;

GnomO

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

você faz um if para verificar as permissões se não tiver permissão faz assim

<%
if variavel de permissao <> da variavel then ' so exemplo
%>
<script language="javascript">
alert("Não tem permissão");
</script>
<%
else
o que tiver que ser

end if
%>

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá ADL, obrigado por ajudar, mas já tentei essa solucao..

retorna um erro pois não tem o valor 5 no array..

alguém sabe dizer se tem como verificar se

existe o valor no array? por exemplo:

MeuArray = New Array(3);

MeuArray(0) = "2"

MeuArray(1) = "1"

MeuArray(2) = "3"

MeuArray(3) = "4"

Será que tem uma funcao que verifica se existe o valor 5 nos arrays?

Desde já agradeço.

Editado por Gnomo
Link para o comentário
Compartilhar em outros sites

  • 0

veja que para seu codigo funcionar a varivel que se vai esplitar deve ter as virgulas

rstGeral.Open "SELECT * FROM AdminPermissoes WHERE Admin=" & lngAdminCodigo, conn
        If Not rstGeral.EOF Then
            lngPermissoes = rstGeral("Permissao")&","
        End If
    rstGeral.Close

if right(lngPermissoes)="," then lngPermissoes=left(lngPermissoes,len(lngPermissoes)-1)

    If Len(lngPermissoes) > 0 Then

        MeuArray = Split(lngPermissoes, ",",-1,1)

        TotalPerm = Ubound(MeuArray)

    End If

Link para o comentário
Compartilhar em outros sites

  • 0

falae bareta!!

e se for assim:

intTipoPermissao = 5

rstGeral.Open "SELECT * FROM AdminPermissoes WHERE Admin=" & lngAdminCodigo, conn
        If Not rstGeral.EOF Then
            lngPermissoes = rstGeral("Permissao")
        End If
rstGeral.Close()

    If Len(lngPermissoes) > 0 Then

        MeuArray = Split(lngPermissoes, ",",-1,1)

        TotalPerm = Ubound(MeuArray)

    End If
O valor de rstGeral("Permissao") já vem com virgulas. Ex: 1,2,3,4. Ai o Split() cria o array tirando as virgulas. intTipoPermissao é o tipo de permissao da página atual, dai o script vai no bd e ve quais as permissões o admin tem (ex: 1,2,3,4), e faz um array com o Split() retirando as virgulas..
MeuArray = New Array(3);
MeuArray(0) = "2"
MeuArray(1) = "1"
MeuArray(2) = "3"
MeuArray(3) = "4"

E eu qria q se o admin não tivesse a permissao de numero 5 retornasse uma mensagem de erro.

Desde já agradeço,

GnomO!

Editado por Gnomo
Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar explicar melhor...

Tabela 1

perms.jpg

Tabela 2

permtipos.jpg

Cada página tem um tipo de permissão (intTipoPermissao).

Esse código abaixo é para pegar os valores da coluna Permissao

da Tabela 1, que estão entre virgulas, e o Split retira as virgulas

criando um array (MeuArray).

<%
intTipoPermissao = 5

rstGeral.Open "SELECT * FROM AdminPermissoes WHERE Admin=" & lngAdminCodigo, conn
        If Not rstGeral.EOF Then
            lngPermissoes = rstGeral("Permissao")
        End If
rstGeral.Close()

    If Len(lngPermissoes) > 0 Then

        MeuArray = Split(lngPermissoes, ",",-1,1)

        TotalPermissoes = Ubound(MeuArray)

    End If
%>
Eu quero verificar se o admin tem a permissão 5 (Alterar configs do sistema), e se o admin não tiver a permissao, que é o caso do admin 1, retorna uma mensagem de erro. Eu tentei fazer assim:
For i = 0 to TotalPermissoes
   If MeuArray(TotalPermissoes-i) = intTipoPermissao Then
      Response.Write "Ok!"
      Response.End
   Else
      Response.Write "Sem acesso!"
      Response.End
   End If
Next

Só que ele não ta comparando um valor de uma variavel com um valor de um array!

Desde já agradeço;

GnomO!

Editado por Gnomo
Link para o comentário
Compartilhar em outros sites

  • 0

aff

tente

<%
intTipoPermissao = 5

rstGeral.Open "SELECT * FROM AdminPermissoes WHERE Admin=" & lngAdminCodigo, conn
        If Not rstGeral.EOF Then
            lngPermissoes = rstGeral("Permissao")
        End If
rstGeral.Close()

    If Len(lngPermissoes) > 0 Then

        MeuArray = Split(lngPermissoes, ",",-1,1)

        for i=lbound(MeuArray) to ubound(MeuArray)

if MeuArray(i)=intTipoPermissao then
permissao="valida"
exit for
else
permissao="invalida"
end if

next

    End If
response.write permissao



%>

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...