Ir para conteúdo
Fórum Script Brasil
  • 0

Dificuldade Com Session


frnd

Pergunta

Ola...

Seguinte.. no sistema que estou desenvolvendo existem 4 tipos diferentes de usuarios e um formulario para se logarem no sistema. Cada tipo de user com a sua tabela criada no banco de dados. Para criar uma session, a partir dessas 4 tabelas, o PHP ele analisa nas 4 tabelas o nome informado pelo usuário? Se achar o PHP mostrar qual tabela o usuário está cadastrado e confere a senha, SE NÃO ele rejeita? É isso ?

[]s

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

É, você pode fazer dessa maneira também, mas eu achei bem complicado!

Não é mais fácil deixar todos os usuários em uma mesma tabela e criar um campo adicional chamado "nivel" ?

Assim você verifica se ele existe e, dependendo do nível dele (1,2,3,4 ou 0,1,2,3, tanto faz) você coloca um tipo de conteúdo e opções na tela.

Para fazer da forma que você quer, você precisará utilizar o if / else.

Manda procurar em uma tabela, e se não encontrar, manda procurar na outra, e por aí vai.

Se não encontrar em nenhuma, ele retorna o erro.

Link para o comentário
Compartilhar em outros sites

  • 0

funciona assim... existe a tabela login existe pois recebe todos o username's e senhas de todos os tipos de usuarios do sistema... então dá um trabalhinho a mais... pois o PHP além de procurar nas 4 tabelas, quando achar vai ter que procurar pelo ID do usuario na tabela login e comparar username e senha informados, correto?

Link para o comentário
Compartilhar em outros sites

  • 0

Mas por que você teria o login e a senha em duas tabelas diferentes?

Cara, deixa tudo em uma tabela só e separa os niveis em um campo só.

Imagina, para cada login o php procurar o usuário em quatro tabelas e depois que encontrar ainda procurar em mais uma só para verificar a senha.

Link para o comentário
Compartilhar em outros sites

  • 0

Usa o switch...

<?php
switch($_SESSION['talcoisa'])
{
  case "1": $pagina = "1.php"; break;
  case "2": $pagina = "2.php"; break;
  case "3": $pagina = "3.php"; break;
  case "4": $pagina = "4.php"; break;
}
header ("Location:$pagina");

Pode fazer usando if/else... etc, várias maneiras... é aconselhavel você definir um valor default pro switch, consulte o manual...

Link para o comentário
Compartilhar em outros sites

  • 0

Na página que você vai fazer o login do cara, após confirmar o login, você pega o valor do BD que diz "o que o cara é" e faz assim:

/*
PARTE DO LOGIN....
*/
$oqueocaraeh = mysql_result($sql,0,'oqueocaraeh');
switch($oqueocaraeh)
{
  case "1": $pagina = "1.php"; break;
  case "2": $pagina = "2.php"; break;
  case "3": $pagina = "3.php"; break;
  case "4": $pagina = "4.php"; break;
}
header ("Location:$pagina");

Ps.: Consulte o manual sobre o switch.

Link para o comentário
Compartilhar em outros sites

  • 0

tentei fazer da seguinte forma.... mas não funciona! sempre cai no ultimo else! oque está havendo?

<?php 
ob_start();
session_start(); 

//obtem a pagina atual
$href = $PHP_SELF;
//inclui biblioteca de conexão
require_once("../biblioteca/connectmysql.php");
//obtem dados de usuario e senha postados no formulario
$usuario = isset($_POST["usuario"]) ? addslashes(trim($_POST["usuario"])) : FALSE;
$senha = isset($_POST["senha"]) ? trim($_POST["senha"]) : FALSE; 

//seleciona os dados que satisfazem a condição de pesquisa
$sql = mysql_query("select * from usuariologin where usuario='$usuario' and senha='$senha'");
//$num_linhas=mysql_num_rows($sql);
//echo $num_linhas;
?>

<? 
while($linha = mysql_fetch_array($sql) && mysql_num_rows($sql) == 1){
  $nivel = $linha['nivel'];
  $id = $linha['id'];
  }

   if ($nivel == '1') {
   $id = mysql_result($sql, 0, 0);
   $_SESSION["id"] = $id;
   header("Location: ./paginas/admin.php");
   }
   else if ($nivel == '2') {
   $id = mysql_result($sql, 0, 0);
   $_SESSION["id"] = $id;
   header("Location: ./paginas/coord.php"); 
   }
   else if ($nivel == '3') {
   $id = mysql_result($sql, 0, 0);
   $_SESSION["id"] = $id;
   header("Location: ./paginas/empresa.php");
   }
   else if ($nivel == '4') {
   $id = mysql_result($sql, 0, 0);
   $_SESSION["id"] = $id;
   header("Location: ./paginas/egresso.php");
   } 
           
        //obtem o "idlogin" retornado pela consulta
    //    $id = mysql_result($sql, 0, 0);
        //registra a session ID com o valor obtido
    //    $_SESSION["id"] = $id;
        //insere o registro de login no historico de login do sistema
        //mysql_query("insert into histlogin (id,tempo,href) values ($id,NOW(),'$href')");                
        //redireciona o usuario para a pagina principal

else
{
        echo "<script language='JavaScript'>";
        echo "alert('Senha e/ou usuário inválido(s)! Por favor, tente novamente!');";
        echo "window.location.href = '../index.php';";
        echo "</script>";
}

ob_end_flush();

?>
resolvido..
while($linha = mysql_fetch_array($sql)){
  $nivel = $linha['nivel'];
  $id = $linha['id'];
  $id = mysql_result($sql, 0, 0);
  }

   if ($nivel == '1') {
   $_SESSION["id"] = $id;
   header("Location: ./index2.php");
   }
   else if ($nivel == '2') {
   $_SESSION["id"] = $id;
   header("Location: ./paginas/coord.php"); 
   }
   else if ($nivel == '3') {
   $_SESSION["id"] = $id;
   header("Location: ./paginas/empresa.php");
   }
   else if ($nivel == '4') {
   $_SESSION["id"] = $id;
   header("Location: ./paginas/egresso.php");
   }

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...