Jump to content
JoaoVM

[Resolvido] Perfis de Utilizador

Recommended Posts

JoaoVM

Boa tarde,

Estou com uma duvida no que toca a perfis de utilizador, o que tenho é o seguinte:

session_start();
$user = $_SESSION['username'];
if (array_key_exists('username', $_SESSION) && $_SESSION['username'] != '') {

echo "Olá $user. Bem vindo á Empresa XXX";
echo "<br>";
echo '<a href="logout.php">Terminar Sessão</a>';
}

CONTEUDO DA PAGINA VISIVEL A UTILIZADORES COM PERMISSAO
else
{
echo "Olá Visitante, Bem vindo á Empresa XXX";
echo "<br>";
echo "A aplicação da Empresa XXX está reservada a utilizadores com permissão!!!";
echo "<br>";
echo '<a href="login.php">Iniciar Sessão</a>';
echo "<br>";
}

A minha duvida é como coloco por exemplo este conteúdo para apenas o utilizador cujo "tipo_utilizador" é "DSI", essa informação só pode estar disponível mediante login que é o que já tenho mas depois tem que distribuir as permissões de visualização por tipo de utilizador, alguém me sabe ajudar?

Cumprimentos,

João Martins

Edited by yoda

Share this post


Link to post
Share on other sites
HappyHippyHippo

olha bem a ordem das coisas !!!!

session_start();
$user = $_SESSION['username']; // <-------------------------------------------------- uso do valor
if (array_key_exists('username', $_SESSION) && $_SESSION['username'] != '') { // <--- verificação se o valor existe ??

agora, respondendo à tua questão, com a informação que disponibilizas, a única coisa que se pode dizer será que deverás guardar o tipo de utilizador no momento que guardas o nome deste na autenticação, e depios validar essa informação

exemplo do seu uso:

if (array_key_exists('username', $_SESSION) && $_SESSION['username'] != '' &&
   array_key_exists('tipo_utilizador', $_SESSION) && $_SESSION['tipo_utilizador'] != '') {
 // existe autenticação
 switch ($_SESSION['tipo_utilizador']) {
   case 'DSI':
     // tipo de utilizador "DSI"
     break;
   default:
     // tipo desconhecido ou não processado
     break;
 }
} else {
 // não existe autenticação
}

  • Vote 2

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
JoaoVM

Não estou a conseguir, ele quanto faço isto ele entra como visitante..não é esse o objetivo..

session_start();
if (array_key_exists('username', $_SESSION) && $_SESSION['username'] != ''&&
array_key_exists('role', $_SESSION) && $_SESSION['role'] !='') {

// existe autenticação
switch ($_SESSION['role'])
{
 case 'DSI':
 echo ("Este Utilizador Pertence ao DSI");
 break;
 default:
 echo ("Este Utilizador nao Pertence ao Departamento");
 break;
}

$user = $_SESSION['username'];
echo "Olá $user. Bem vindo á Empresa XPTO";
echo "<br>";
echo '<a href="logout.php">Terminar Sessão</a>';
}
else
{
echo "Olá Visitante, Bem vindo á Empresa XPTO";
echo "<br>";
echo "A aplicação da Empresa XPTO está reservada a utilizadores com permissão!!!";
echo "<br>";
echo '<a href="login.php">Iniciar Sessão</a>';
echo "<br>";
}

Edited by yoda

Share this post


Link to post
Share on other sites
HappyHippyHippo

mas registaste o 'role' na sessão ? é que existem 4 condições para detectar um registo bem efectuado:

if (array_key_exists('username', $_SESSION) &&  // existir um registo de 'username' em sessão
   $_SESSION['username'] != ''&&               // e esse registo não pode ter o valor "vazio"
   array_key_exists('role', $_SESSION) &&      // existir um registo de 'role' em sessão
   $_SESSION['role'] !='') {                   // e esse registo não pode ter o valor "vazio"


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
JoaoVM

Tenho no meu valida_login.php:

//COLOCA O ROLE EM SESSAO
 $_SESSION['role']=$role['role'];

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites
HappyHippyHippo

e $role['role'] existe porque sim ?

caso não tenhas reparado pelo número de respostas ao teu tópico, sem apresentares a informação de como fazes as coisas, é impossível dizer alguma coisa sobre o teu problema


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
JoaoVM

Bem, tenho a minha pagina login.php que é um formulário normal que redireciona para a pagina valida_login.php.

Esta é a minha página valida_login.php

tem algumas coisas que não estão a fazer anda mas não e isso que interessa também..

<?php
require_once ('init.php');  
//CONSULTA DO UTILIZADOR
$consulta="select * from utilizadores where username='" . $_POST['username'] . "' and passwd='" . $_POST['passwd'] . "'";
$resultado=mysql_query($consulta);

if (mysql_num_rows($resultado)>0) //SE O UTILIZADOR E A PASSWORD COINCIDIREM
{  
 //COLOCA NA VARIAVEL LINHA OS DADOS DA CONSULTA  
 $linha=mysql_fetch_array($resultado);
 //COLOCA O USERNAME EM SESSAO
 $_SESSION['username']=$linha['username'];
 //COLOCA O ROLE EM SESSAO
 $_SESSION['role']=$role['role'];
 //REDIRECCIONA A PAGINA PARA A PAGINA SECRETA


 if($linha['role'] == 'DSI'){
		// Utilizador faz algo...
							 header("location: index.php");
				}else{
		// Administrador faz algo...
						header("location: restrito.php");
				}

/* Poderia fazer assim tambem pode ser uma ideia..
 $linha['role'] == 'DSI';
 switch($linha){
 case 'DSI':
 header("location: index.php");
 break;
 case 'ADMIN':
 header("location: index.php");
 break;
 case 'CL':
 header("location: index.php");
 break;
 case 'CT':
 header("location: gestao_turnos.php");
 break;
 case 'CP':
 header("location: index.php");
 break;
 default:
 header("location: restrito.php");
 break;
 }


 */


 header("location: index.php");  
}
else //CASO NAO COINCIDAM
{
 //REDIRECCIONA PARA A PAGINA INICIAL REPORTANDO O ERRO
 header("location: index.php?erro=1");
}  
?>

agora temos a página do index.php que mostrar qual o perfil de utilizador ou role do utilizador que fez o login.

esta pagina apenas mostra as boas vindas e o conteúdo da pagina.


 session_start();
 if (array_key_exists('username', $_SESSION) &&
 $_SESSION['username'] != '' &&			  
 array_key_exists('role', $_SESSION) &&	
 $_SESSION['role'] !='') {

// existe autenticação
switch ($_SESSION['role'])
{
 case 'DSI':
 echo ("Este Utilizador Pertence ao DSI");
   break;
 default:
   echo ("Este Utilizador nao Pertence ao Departamento");
   break;
}

  $user = $_SESSION['username'];
  //echo $role = $_SESSION['role'];
  echo "Olá $user. Bem vindo á Empresa XPTO";
  echo "<br>";
  echo '<a href="logout.php">Terminar Sessão</a>';
  }
  else
  {
  echo "Olá Visitante, Bem vindo á Empresa XPTO";
  echo "<br>";
  echo "A aplicação da Empresa XPTO está reservada a utilizadores com permissão!!!";
  echo "<br>";
  echo '<a href="login.php">Iniciar Sessão</a>';
  echo "<br>";
  }

esta é uma outra página que deve ter permissão para aceder...consigo dar permissão para quem está com o login efetuado ou nao mas nao estou a conseguir por perfil de utilizador.

<?php
if (isset($_SESSION['username']))
{ $user = $_SESSION['username'];

?>
CONTEUDO DA PAGINA
 <?php

 echo "Olá $user, Bem vindo á Gestão de Turnos";
 echo "<br>";
 echo '<a href="logout.php">Terminar Sessão</a>';


CONTEUDO QUE PODE SER VISTO POR QUEM ESTÁ COM LOGIN EFETUADO
}
else

{

//REDIRECIONAMENTO PARA QUEM NÃO TEM LOGIN EFETUADO


$url = 'restrito.php'; // *Cough*
  echo "<script language=\"javascript\">
  location.href=\"$url\";
  </script>";
  exit;
}
 ?>

espero ter-me conseguido explicar quanto ao meu problema.

Cumprimentos,

João Martins

Edited by JoaoVM

Share this post


Link to post
Share on other sites
JoaoVM

Bem, afinal era uma coisinha pequena que me estava a causar um grande problema..nao esperava que fosse ali mas estava certo.

Obrigado Rui Carlos e HappyHippyHippo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.