Ir para conteúdo

POWERED BY:

Arquivado

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

brhvitor6

Controle de acesso

Recommended Posts

Fala ai galera beleza?

A algum tempo criei esse script para facilitar na hora de proteger uma pagina e gerenciar seu acesso....

ai esta o codigo e no final do post tem como usa-lo, é bem simples e se alguem tiver alguma critica/dica por favor manda ai

 

function protege($expressao, $pagina)
{
if(!isset($_SESSION['user']) or !isset($_SESSION['grupo']))
{
	header("Location: login.php?p=$pagina");
	die();
}

if($expressao == "todos")
{
	return true;
	die();
}

$user = $_SESSION['user'];
$grupo = $_SESSION['grupo'];

$expressao = explode(",",$expressao);
$regular_grupo = '/g:([a-zA-Z\.])/';
$regular_user = '/u:([a-zA-Z\.])/';

$g_liberados = array();
$u_liberados = array();

for($b = 0;$b < count($expressao);$b++)
{
	if(preg_match($regular_grupo,$expressao[$b]))
	{
		array_push($g_liberados,str_replace('g:','',$expressao[$b]));
	}
	if(preg_match($regular_user,$expressao[$b]))
	{
		array_push($u_liberados,str_replace('u:','',$expressao[$b]));
	}
}
if(in_array($user,$u_liberados))
{
	return true;
}
if(in_array($grupo,$g_liberados))
{
	return true;
}
}

 

Usando:

 

<?php
//todos os usuarios podem acessar
if(!protege("todos","index")){$url = 'login.php?p=index';header("Location: $url");}

//somente grupo usuarios e o user vitor podem acessar
if(!protege("u:vitor,g:usuarios","index")){$url = 'login.php?p=index';header("Location: $url");}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, tem um negócio meio estranho aí ... você esqueceu de um pequeno detalhe, é que depois do return, nada mais é executado, portanto você colocou um die() desnecessário ali na verificação da expressão todos. :wacko:

 

Não seria mais bacana você separar esse código não ? tá meio embolado isso aí.

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.