Ir para conteúdo

POWERED BY:

Arquivado

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

elizacoelho

Criar várias Sessões distintas

Recommended Posts

Olá,

Estou iniciando na programação com PHP e estou com dúvida em como criar sessões para usuários distintos, ou seja, como eu poderia criar um sistema onde cada usuário ao se logar teria acesso somente as suas respectivas informações. Por exemplo, usuário Aluno ao se logar no sistema veja somente seus dados cadastrais, histórico etc, o usuário Secretaria ao acessar o sistema veja somente a página onde ele pode emitir seus relatórios, alterações cadastrais etc e assim sucessivamente. Estou utilizando o banco MySql (SQLAdmin). Alguém poderia me ajudar? Muito obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode criar sessao analisando as informações vindas do banco de dados

quando o usuario efetuar o login, você precisa consulta no banco de dados que tipo de usuario é, e dai você atribui o valor para uma variavel de sessao

 

$session["nivel"] = $campo_do_banco_que_identifica_o_nivel;

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode criar sessao analisando as informações vindas do banco de dados

quando o usuario efetuar o login, você precisa consulta no banco de dados que tipo de usuario é, e dai você atribui o valor para uma variavel de sessao

 

$session["nivel"] = $campo_do_banco_que_identifica_o_nivel;

Como assim níveis?

Desculpe, mas eu não entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você teria os grupos de acesso, por exemplo Aluno, Secretaria... Aí você grava na tabela do usuário, no banco de dados, qual grupo ele pertence.

 

Na hora de fazer o login, você grava este grupo em uma $_SESSION (como o jpraminelli sugeriu) e, dentro da página que vai exibir os dados, você faz um switch.

 

switch($_SESSION['nivel'])
{
    case 'aluno':
        // coloca aqui a parte do aluno
    break;
    case 'secretaria':
        // coloca aqui a parte da secretaria
    break;
    // repete para todos os grupos que tiver
}

Esta é UMA das formas de se fazer. Existem outras, mas aí vai depender do seu conhecimento em PHP.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

Você tera que trabalhar com sessoes ou cookies.

 

Para te ajudar,

 

você faz a tela de login e pega o id do usuario, ok?

 

Agora você grava ele na sessao usando:

 

session_star();
$_SESSION["id_user"] = $id_do_usuario;

Agora para toda a consulta sql ou algo que seja particular do usuario você usa $_SESSION["id_user"]

 

ex:

 

session_star();
$_SESSION["id_user"] = $id_do_usuario;

$sql = "SELECT * from fotos where id_user = ".$_SESSION["id_user"];
.........
.......
.....

Acho que isso ajuda um pouco.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi as sugestões, Renan eu utilizo sessao e estou criando páginas distintas para os usuários. Criei uma tabela chamada login formada pelos seguintes atributos: codigo (seria a chave primaria), usuario, senha e codigo_usuario (corresponde a uma chave estrangeira que identifica qual usuário possui login e estava tentando utilizar esta chave para redimencionar a sua respectiva página). O que eu não entendi Renan é em que página eu devo inserir este código da sessão, seria na index de cada usuário ou na página que criei para realizar o login do site? Desculpe se a pergunta parecer ridícula, mas nunca criei páginas em php com login de usuários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias, eu tmb gostei da sua solução, mas estou trabalhando com páginas distintas para cada usuário, sendo assim eu não poderiar colocar o este swich dentro de uma função chamar para ser executa dentro de cada index? Quando você coloca no código '//colocar aqui a parte do aluno' seria o código para fazer referência as sessões distintas q foram armazenadas no banco utilizando comando em sql? Se for isto, poderia dar um exemplo um pouco mais específico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você utiliza páginas específicas para cada grupo, pode fazer algo assim...

 

switch($_SESSION['nivel'])
{
    case 'aluno':
        include 'aluno.php';
    break;
    case 'secretaria':
        include 'secretaria.php';
    break;
    // repete para todos os grupos que tiver
}

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O $_SESSION['nivel'] seria a qual grupo ele pertence (aluno, secretaria)... Você pode colocar este código no arquivo que verifica se o login e a senha estão corretos. Outra opção seria, ao invés de utilizar include, utilizar header('Location: pagina.php'), onde pagina é a página do grupo daquele usuário (aluno...)

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha complicação é a seguinte eu tentei fazer mais ou menos o que você me passou, mas usando 'if' e o problema é que o sistema encaminha o usuário somente para a página de aluno, um coisa que esqueci mencionar é que o usuário é identificado pelo campo usuário da tabela login e este campo por sua vez corresponde a sua matrícula.

No seu código você faz um switch onde identifico por grupo, no meu caso preciso que seja pelo campo usuário. Veja o código abaixo da minha página autenticar.php (é nela que realizo o redimencionamento do usuário de acordo com seu respectivo login)

<?
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Autenticar</title>
</head>
 <?
     // Recebemos os dados digitados pelo usuário
     include "conect.php"; /* aqui é estabelecida a comunicação com o banco */
     $usuario = $_POST['usuario'];
     $senha = $_POST['senha'];
     $professor = $_POST['usuario'];
     $senhap = $_POST['senha'];
     $sql = mysql_query ("select * from login where usuario = '$usuario' and senha = '$senha'");		      
             if (mysql_num_rows($sql)== 1){
  	  $_SESSION['usuario_session'] = $usuario;
	  $_SESSION['senha_session'] = $senha;
	  $_SESSION['professor_session'] = $professor;
	 $_SESSION['senhap_session'] = $senhap;
  	if ($sql = mysql_query ("select usuario from login where usuario like 'i%'")){
	  include "principal_aluno.php";
	}else if ($sql = mysql_query ("select usuario from login where usuario like 'p%'")){
	  include "principal_professor.php";
	 }
  }else{
       unset($_SESSION["usuario_session"]);
       unset($_SESSION["senha_session"]);
              unset($_SESSION["professor_session"]);
       unset($_SESSION["senhap_session"]);
       include "index.php";
  }
?>
<body>
</body>
</html>

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.