Ir para conteúdo

POWERED BY:

Arquivado

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

Perfect Lion

Criando level de acesso ao site

Recommended Posts

Bem antes de qualquer coisa... esse tuto eu fiz ele para um aluno via msn

É o básico do Básico...

Criar level de acesso ao site....

 

bem lá vai nem vi os erros de portuga... preguiça de revisar.. :P

 

Imagina que nós temos o banco de dados da seguinte forma...

 

tbUserid || nome || username   || senha	  || grupoid01|| erick  || perfect lion || md5(123) || 1tbGrupoid || nome1  || Administrador2  || Membro3  || Moderador

 

Bem temos duas tabelas certo ???

 

Agora usa a lógica para fazer a comparação para cada sessão e usuário

 

Crie um array de grupos que podem ser liberados para tal sessão

 

ARRAY()

 

Ex:

$sessao["news"] = array(1,3); // aqui estamos definindo que na sessão news o único grupo que pode ter acesso a ela são o Admin e o Moderador....

bem sabendo isso vamos criar um sistema que libera o conteúdo ...

 

A si criamos um loop para pegar esses números.... ex:

 

$sessao["news"] = array(1,3); for($i=0;$i<count($sessao["news"]);$i++){}

Sabemos que aqui vamos pegar o valor dos grupos que podem ver o tal pedaço do site..

 

bem antes disso precisamos pegar o grupoid que o usuário pertence... ai faremos o seguinte...

 

select * from tbuser where upper(nome) = '".strtoupper($user)."' and upper(senha) = '".md5($senha)"'

Aqui pegamos o id do fulano quando ele logar.... ai faremos o seguinte... pegamos todos os dados do fulano e colocamos em um array..

 

$user["nome"] = $l["nome"];$user["grupoid"] = $l["grupoid"];

 

Certo???

 

Agora que temos um array do fulano nos vamos ter todo o conteúdo que precisamos do usuário dentro de $user vamos pegar e serialize para colocar ele dentro de uma sessão

 

SESSION_START()

SERIALIZE()

 

session_start();$user["nome"] = $l["nome"];$user["grupoid"] = $l["grupoid"];$_SESSION["user"] = serialize($user);

O serialize ele configura da maneira que ele vê para a matriz que você está mandando para ele..... que é o nosso array $user....

 

bem mandando isso para session agora podemos ter acesso a ele em varias sessões do seu site chamando o session_start(); e pegando o valor do $

_SESSION["user"];

 

Bem.... vamos imaginar o seguinte....

 

Imaginamos que você tem um arquivo config.php onde consta lá as seguintes informações...

 

config.php

<?session_start();$sessao["admin"] = array(1);$sessao["news"] = array(1,2,3);$sessao["livraria"] = array(1,3);?>

Temos nesse config.php as sessões com seus respectivos grupos de acessos.... agora como vamos utilizar ele??

 

bem da seguinte forma...

 

como você já colocou na session a sessão user com os dados do users vamos pegar ele no começo da pagina mais antes disso vamos chamar o config.php

 

UNSERIALIZE()

<?require("config.php");$user = unserialize($_SESSION["user"]);?>

Agora a variavel $user passa a conter novamente

 

Os dados do usuário... como o nome e o grupo em que ele pertence....

 

Poupamos ai àquela gigantesca lista de sessões.. ex:

 

$_SESSION["nome"] = "nome";$_SESSION["grupoid"] = 1;$_SESSION["senha"] = "12456";blablabla...

 

Lembra que teríamos que recuperar isso tudo de novo escrever linha por linha... Isso é coisa para quem ta começando no php mais como você ja está um pouco alem do nível iniciante... você consegue diminuir isso fazendo somente isso

 

$user["nome"] = "nome";$user["grupoid"] = 1;$user["senha"] = "12456";$_SESSION["user"] = serialize($user);

Ai se você quiser recuperar todas aquelas infos antigamente você teria que digitar sessão por sessão certo??? Aqui já não vamos mais precisar disso..é só fazer o seguinte..

 

No começo da pagina coloque

$user = unserialize($_SESSION["user"]);

Ai a variável $user tornasse como era antes.. com os mesmo valores que você precisa para usa-la...

 

Primeiro de tudo.. você tem que colocar tem todas as paginas o require("config.php"); bem sabemos que dentro do config.php já temos o session_start(); no começo dele então não será necessario mais colocalo nas paginas...

 

Agora você tem que criar a sessão usuário...

 

<?require("config.php");select * from tbuser where upper(nome) = '".strtoupper($user)."' and upper(senha) = '".md5($senha)"'$user["nome"] = $l["nome"];$user["grupoid"] = $l["grupoid"];$_SESSION["user"] = serialize($user);?>

Aqui criamos a sessão do usuário caso a consulte retorne o valor de que usuário e senha estão corretos...

 

Mais lembre você tem que fazer essa comparação.. Aqui só estou explicando a lógica e o conceito usuário com grupos..de sessão...

 

Bem feito isso ai agora vamos para a pagina de admin.php sabemos que o admn.php que só pode ter acesso os admins... usuarios do grupo admins... vamos iniciar o admin.php

 

<?require("config.php");$user = unserialize($_SESSION["user"]);?>

bem aqui já temos iniciado o arquivo admin.php agora vamos pegar o array que tem os grupos liberados para essa sessão que está dentro do config.php...e criar um loop do mesmo...

 

<?require("config.php");$user = unserialize($_SESSION["user"]);for($i=0;$i<count($sessao["admn"]);$i++){}?>

Bem criamos o loop de usuários liberados...pelos grupos... agora vamos fazer o seguinte.....vamos inventar uma variável $libera["sessao"];;;

 

<?require("config.php");$user = unserialize($_SESSION["user"]);for($i=0;$i<count($sessao["admn"]);$i++){ $libera["sessao"];}?>

O que essa var vai nos ajudar??? bem ela é o que vai liberar a sessão do site para o kra poder visualizar...

 

Agora vamos fazer uma comparação....dentro do for...

 

<?require("config.php");$user = unserialize($_SESSION["user"]);for($i=0;$i<count($sessao["admn"]);$i++){ if($user["grupoid"] == $sessao["admin"][$i]){   $libera["sessao"]  = true; }}?>

Aqui verificamos se o usuário é pertencente do grupo liberado pelo admin...

 

Se for liberado então a variável $libera["sessao"] ganha o valor verdadeiro "true" que indica que foi liberado a visualização do conteúdo do site;...

 

ex:

<?require("config.php");$user = unserialize($_SESSION["user"]);for($i=0;$i<count($sessao["admn"]);$i++){ if($user["grupoid"] == $sessao["admin"][$i]){   $libera["sessao"]  = true; }}if($libera["sessao']){echo "Ola, {$user["nome"]} seja bem vindo a sessão admin";}else{echo "Você não tem permissão o suficiente para visualizar essa sessão do site";}?>

Bem basicamente e isso ai que passei para você... lê rele e estude... você pode até melhorar pois isso é o basico do simples... ainda existe o complicado do simples.. que é mais difícil compreender..onde que coloca somente isso no inicio do site

 

$user->logado();

 

ai ele já faz tudo

 

=)

 

Editado: nossa ficou grando pacas pensei que num era tudo isso 5 paginas do word isso pq tirei algumas coisinha e simplifiquei algumas coisas :S

 

Qualquer fuvida postem ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

O codigo ta ae.. eu num vou zipar fazer e deixar propoto para o pessoal eu encinei como fazer agora vcs tem que ler e entender e aprender e fazer vcs mesmo ai já ta feito.. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o pessoal que trabalha com design e precisa saber um pouco de programação seria mto pratico liberar o codigo, mas tudo bem, eu queria uma ajuda nesse sistema.Sistema de noticias composto de um grupo de 3 niveis: administrador, membro, moderadorId - Nome - Função1 Administrador - Excluir, Aprovar, Editar2 Membro - Editar3 Moderador - Aprovaro Administrador pode excluir, aprovar e editar qualquer noticiao Membro só pode editar a noticia que ele enviou.o Moderador só pode aprovar qualquer noticiao arquivo config.php seria assim ?

<?phpsession_start();$sessao["editar"] = array(1,2);$sessao["excluir"] = array(1);$sessao["aprovar"] = array(1,3);?>

Como eu faço para colocar as condições ?Da para fazer um sistema desses baseado nesse explicação ?

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.