Jump to content
Fórum Script Brasil
  • 0

Dificuldade Com Session


frnd
 Share

Question

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 to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

  • 0

Voce teria algum exemplo do que eu sugestionei?

Ahh... tem um detalhe! Existe uma tabela chamada login, é onde está os nomes e senhas de todos os usuarios!

[]s

Edited by frnd
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...