Ir para conteúdo

POWERED BY:

Arquivado

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

Gunner

[Resolvido] Login para varios tipos de usuarios

Recommended Posts

Olá pessoal.

 

Estou com uma duvida para fazer um login de um curso via web que estou fazendo.

 

a pagina login.php será utilizada por tres tipos de usuarios: aluno, tutor e administrador.

 

Quando cada um desses inserir o login e senha corretos, cada um será redirecionado a uma pagina diferente.

 

Já vi isso aqui no forum, mas o meu problema é que no meu banco existe para cada tipo de usuario uma tabela (alunos, tutores, adms) porque para mim nao fica viavel colocar apenas uma tabela de usuario e cadastrar alunos,tutores e adms nessa mesma tabela, por questoes de relacionamentos com outras tabelas, nao posso fazer uma tabela usuario onde ficariam as informacoes desses tres tipos de usuarios.

 

Gostaria de saber se tem como fazer o login abrir paginas diferentes para diferentes tipos de usuarios??? Sendo que o php iria ter que procurar em tres tabelas no banco, pois eu apenas vi o php procurando o login (usuario e senha) do usuario em uma unica tabela do banco.

 

Ps: Sou iniciante em programação.

 

Aguardo a ajuda de voces

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro crie um campo nivel na sua tabela de login.

 

depois você vai cadastrar para adm nivel 1,tutor nivel2, aluno nivel 3.

 

Login.php

<?
session_start();
 $base = mysql_connect('Localhost','usuario','senha') or die ("Erro ao conectar.");
 $db = mysql_select_db(BD);


 if(isset($_GET['acao']))
 {
  if($_GET['acao'] == "login")
  {
   if (isset($_POST['login']))
   {
   if (empty($_POST['login']))
   {
   $erro[] = "Informe seu login."; 
   }
   }
   else
   {
	  $erro[] = "Informe seu login.";
   }
   
   if (isset($_POST['senha']))
   {
   if (empty($_POST['senha']))
   {
   $erro[] = "Informe sua senha.";
   }
   }
   else
   {
	  $erro[] = "Informe sua senha.";
   }
  if (!isset($erro)){
	   $login =addslashes(htmlentities($_POST['login']));
	   $senha = addslashes(htmlentities($_POST['senha']));
	   $senha = md5($senha);

		 $sql = "SELECT * FROM user WHERE  login = '$login' and senha = '$senha'";
		 $result = mysql_query($sql, $base) or die ("Erro ao executar sql");
		 $linha = mysql_num_rows($result);
		 $reg_login = mysql_fetch_array($result, MYSQL_ASSOC);

				 if (($linha > 0) and ($reg_login['nivel'] == '1')){
				 $_SESSION['login'] = $reg_login['login'];
				 $_SESSION['senha'] = $reg_login['senha'];
				 $_SESSION['nivel'] = $reg_login['nivel'];
				 header("Location: paginaadm.php");
					exit;
					   }
					   else
					   {
					   $erro[]= "Usuário e/ou senha invalido(s).";
					   }
					   
					if (($linha > 0) and ($reg_login['nivel'] == '2')){
					$_SESSION['login'] = $reg_login['login'];
					$_SESSION['senha'] = $reg_login['senha'];
					$_SESSION['nivel'] = $reg_login['nivel'];
					header("Location: tutor.php");
					exit;
					   }
					   else
					   {
					   $erro[]= "Usuário e/ou senha invalido(s).";
					   }
					   

					if (($linha > 0) and ($reg_login['nivel'] == '3')){
					$_SESSION['login'] = $reg_login['login'];
					$_SESSION['senha'] = $reg_login['senha'];
					$_SESSION['nivel'] = $reg_login['nivel'];
					header("Location: aluno.php");
					exit;
					   }
					   else
					   {
					   $erro[]= "Usuário e/ou senha invalido(s).";
					   }


					   


					   
					   
  }
  
  }
 }
 

?>
<HTML>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
body,p,a,span,div,input,legend,h1,h2,h3,h4,h5,h6,li,dd,dt,th,td{
font-family:Arial, Helvetica, sans-serif;
}
body,p,a,span,div,input,legend,li,dd,dt,th,td{
font-size:10pt;
}
#loginform {
width:300px;
margin:auto;
}
#loginform fieldset{
padding:10px;
}
#loginform legend{
font-weight:bold;
font-size:9pt;
}
#loginform label{
display:block;
height:2em;
background-color:#D77100;
padding:10px 10px 0;
}
#loginform input {
margin-right:20px;
border:1px solid #999999;
float:right;
clear:right;
background:#FFFFFF;
}
#loginform input:focus,#loginform input:hover {
border:1px solid #333333;
}
.error{
color:red;
font-weight:bold;
}

</style>

 <TITLE>Login</TITLE>
</HEAD>
<BODY>
<?php
  if(isset($erro)){
				 echo "<ul>";

				 for ($i=0;$i<count($erro);$i++)
				 {
				   echo "<li>".$erro[$i]."</li>";
				 }   echo "</ul>";
  }
  if(isset($_GET['erro'])){
  echo "<ul>
	 <li>É preciso logar-se para acessar a area restrita.</li>
   </ul>";
  
  }
  

?>
  <form id="loginform" action="<?=$_SERVER['PHP_SELF']?>?acao=login" method="post">
   <fieldset>
   <legend>Log In</legend>
  <label for="username"><input type="text" name="login" tabindex="1" id="username"><b>Usuário:</b>
 </label>
	<label for="password"><input type="password" name="senha" tabindex="2" id="password"><b>Senha:</b>
	</label>
	<label for="submit">
	<input name="Submit" type="submit" id="submit" tabindex="3" value="Log in">
	</label>

</fieldset>
</form>

</BODY>
</HTML>

 

no começo de cada pagina você tem que ver qual sessao esta carregada, nivel 1,2,3. para evitar que os usuarios carreguem as paginas pelo browser.

 

 

Nesse exemplo a pagina soh pode ser carregada se a session for com nivel 1. ADM.

<?php
  session_start();
  if(!isset($_SESSION['login']) || !isset($_SESSION['senha']))
  {
  header("Location: index.php?erro=1");
  exit;
  }
		if ($_SESSION['nivel'] > 1')
  {
	header("Location: index.php?erro=1");
  exit;
  }

?>

da uma estudada, você tem q pegar o raciocinio desse codigo, eu peguei ele aqui no imaster mesmo, esqueci do link, eu modifiquei umas coisas. mas procura aqui que tem uma video aula, muito muito boa..

pesquisa sobre SESSION.

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.