Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

Quero redirecionar o login de acordo com o nivel

Tenho este codigo para login, mas tenho 3 categorias diferentes que ate criei no bd, mas gostaria que se a pessoa que logasse fosse da categoria "atletica" a redirecionasse para pagina da atletica, caso ela seja comissao va para comissao e formando para formando. ajuda urgente pf!

function buscaUsuario($conexao, $email, $senha) {
    $senhaMd5 = md5($senha);
    $query = "select * from usuarios where email='{$email}' and senha='{$senhaMd5}' and categoria='formando'";
    $resultado = mysqli_query($conexao, $query);
    $usuario = mysqli_fetch_assoc($resultado);
    return $usuario;
}

$usuario = buscaUsuario($conexao, $_POST["email"], $_POST["senha"]);
if($usuario == null) {
    header("Location: login.php?login=0");
} else {
    header("Location:formando.php");
}
die();
10 respostas

Ajuda pf! Ja tengo ate a ideia de criar if com as categorias que criei dentro dos usuarios mas n sei como puxar do bd p criar o codigo

Augusto, você já tem no BD. Imagino que seja na tabela usuários, certo?

Para pegar da tabela, você fez um fetch_assoc e jogou denteo da variável $usuario. Portanto, a variável $usuário é um array.

$usuario['email'] contém o email $usuario['senha'] contém a senha

Se tu criaste na tabela a coluna categoria, $usuario['categoria'] contém a categoria

se tens certeza que dentro da coluna existem apenas valores válidos: em vez de redirecionar para formando.php, redireciona para o conteúdo da coluna categoria.

$usuario = buscaUsuario($conexao, $_POST["email"], $_POST["senha"]);
if($usuario == null) {
    header("Location: login.php?login=0");
} else {
    header("Location:'{$categoria}'.php");
}
die();

testa e posta aqui o resultado?

antes faz $categoria = $usuario["categoria"];

resumindo:

$usuario = buscaUsuario($conexao, $_POST["email"], $_POST["senha"]);
if($usuario == null) {
    header("Location: login.php?login=0");
} else {
    $categoria = $usuario['categoria'];
    header("Location:'{$categoria}'.php");
}
die();

João coloquei umas aspas simples a mais. O código deve ficar

$usuario = buscaUsuario($conexao, $_POST["email"], $_POST["senha"]);
2.if($usuario == null) {
3.    header("Location: login.php?login=0");
4.} else {
5.    $categoria = $usuario['categoria'];
6.    header("Location:{$categoria}.php");
7.}
8.die();

Que zica, não é joão é Augusto. Além disto, no último código ficou numeração de linhas, tira esta numeração, tá?

nem sei tirar haha, mas aqui, eu tenho 3 categorias diferentes , atletica, comissao e formando, e gostaria de acordo com o login se fosse da categoria tal fosse pra tal redirecionamento. vou tentar e ja respondo

como faço pra buscar no bd ql a categoria ?

tipo na verdade na minha query eu nao posso falar que a categoria e formando, o php tem q buscar no bd ql categoria e a da pessoa e redirecionar de acordo.

solução!

Augusto você já tem a query pronto.

A categoria não fica na tabela usuarios ?

$query = "select * from usuarios where email='{$email}' and senha='{$senhaMd5}' and categoria=

Na linha acima tu tás selecionando tudo da tabela usuários ; portanto, vem junto a categoria.

É só fazer como falei:

$usuario = buscaUsuario($conexao, $_POST["email"], $_POST["senha"]);
if($usuario == null) {
    header("Location: login.php?login=0");
} else {
    $categoria = $usuario['categoria'];
    header("Location:{$categoria}.php");
}
die();