grldesign 0 Denunciar post Postado Novembro 30, 2003 Estou tendo problemas com um sistema de login que dependendo do nível de cadastro do usuário, redireciona para um tipo de painel com suas permissões independentes. Nível Administrador -> painel.php?tipo=administrador Nível Professor -> painel.php?tipo=professor Nível Aluno -> painel.php?tipo=aluno O que preciso é o seguinte. De um código de verificação de login e senha, que pegue o tipo de cadastro do usuario logado e redirecione para o seu painel específico. Utilizando sessions, que proteja todas páginas ´do painel, caso esteja logado execute, senão retorne para a index. Caso alguem possa me ajudar já agradeço. Um abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Novembro 30, 2003 Cara, e se alguém ir na barra de endereços e digitar painel.php?tipo=administrador? Ele vai mudar o que quiser? Faz uma página e nela você busca o valor do campo nível na tabela usuários, que deve ser igual o da sessão (um exemplo), se for 2 tem todas as permissões, se for 1 só algumas coisas e se for 0, tem menos permissões. :D Compartilhar este post Link para o post Compartilhar em outros sites
grldesign 0 Denunciar post Postado Dezembro 1, 2003 Acontece o seguinte. O Acesso não será cedido apenas pela variável do endereço real da página (painel.php?tipo=administrador) e sim pelo nome de usuario e senha, armazenados nas session e testado a cada pagina entende?Tem como me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Dezembro 1, 2003 É fácil: $usuario = $_SESSION[usuario];$senha = $_SESSION[senha];// Pega o valor das sessões$busca = mysql_query("SELECT * FROM tabela where usuario=$usuario AND senha=$senha");while ($r = mysql_fetch_array($busca)) {$nivel = $r[nivel];} // Fiz a consulta e peguei o valor do nivel do db, depois verifica o valorif ($nivel=2) {// Aparece alguma coisa} else if ($nivel=1) {// Aparece outra coisa} else {// Aparece mais outra coisa}Entendeu? ;) Compartilhar este post Link para o post Compartilhar em outros sites
grldesign 0 Denunciar post Postado Dezembro 1, 2003 Sim. Só preciso saber como criar a session, porque sempre que crio, tanto com session_register ou somente com $_SESSION["array"] não reconhece os valores nas páginas a seguir entende?Preciso saber como setar corretamente a session se o login foi bem sucedido e como recuperar o valor delas nas outras páginas.Flw! Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Dezembro 1, 2003 session_start()$_SESSION["usuario"] = $usuario;$_SESSION["senha"] = $senha;Na página pra pegar o valor dela:session_start()$usuario = $_SESSION["usuario"];$senha = $_SESSION["senha"];você deve dempre usar o session_start() no começo da página pra poder usar a sessão, ;) Compartilhar este post Link para o post Compartilhar em outros sites
grldesign 0 Denunciar post Postado Dezembro 1, 2003 Obrigado pela ajuda prescot. Seguinte, o select fica da forma abaixo né?"SELECT * FROM tabela WHERE username='$user' AND password='$pass'"correto? Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Dezembro 1, 2003 Isso :D Compartilhar este post Link para o post Compartilhar em outros sites
grldesign 0 Denunciar post Postado Dezembro 2, 2003 Infelizmente não está funcionando. Abaixo vai o código de verificação e o de recebimento da session na pagina alvo. Tomara que possa me ajudar.verifica.php <? if(!empty($HTTP_POST_VARS[cad_panel])) { if(!empty($HTTP_POST_VARS[user_panel])) { if(!empty($HTTP_POST_VARS[pass_panel])) { $cad = $HTTP_POST_VARS[cad_panel]; $user = $HTTP_POST_VARS[user_panel]; $pass = $HTTP_POST_VARS[pass_panel]; require('config/dados.php'); $busca = "SELECT * FROM login WHERE username='$user' AND password='$pass'"; $verifica = mysql_query($busca); $valida = mysql_num_rows($verifica); $campo = mysql_fetch_array($verifica); $campo_nome = $campo[nome_completo]; $campo_usuario = $campo[username]; $campo_senha = $campo[senha]; $campo_cadastro = $campo[cadastro]; if(($valida = 1)) { session_start(); $_SESSION["nome"] = $campo_nome; $_SESSION["username"] = $campo_usuario; $_SESSION["senha"] = $campo_senha; $_SESSION["cadastro"] = $campo_cadastro; if(($campo_cadastro = 'Administrador')) { header("location: painel.php"); } //Fecha IF Administrador if(($campo_cadastro = 'Aluno')) { header("location: painel.php"); } //Fecha IF Aluno if(($campo_cadastro = 'Professor')) { header("location: painel.php"); } //Fecha IF Professor } else { header ("location: index.php"); } } } } ?> painel.php<?php session_start(); $ses_cad = $_SESSION["cadastro"]; $ses_nome = $_SESSION["nome"]; $ses_user = $_SESSION["username"]; $ses_pass = $_SESSION["senha"]; require('config/dados.php');$busca = "SELECT * FROM login WHERE username='$ses_user' AND password='$ses_pass'";$verifica = mysql_query($busca);$logado = mysql_num_rows($verifica);$campo = mysql_fetch_array($verifica);$db_cadastro = $campo[cadastro]; if(($db_cadastro = $ses_cad)) { echo "Olá $ses_nome. Seja Bem-Vindo ao Painel Administrativo, versão do "$ses_cad";}else { echo "Você não está logado.";}?>Sempre que tento ele diz que nao estou logado, e os dados estão corretos. O que pode estar acontecendo? Compartilhar este post Link para o post Compartilhar em outros sites
grldesign 0 Denunciar post Postado Dezembro 2, 2003 Será que alguém poderia me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Dezembro 2, 2003 <? session_start(); if(!empty($HTTP_POST_VARS[cad_panel])) { if(!empty($HTTP_POST_VARS[user_panel])) { if(!empty($HTTP_POST_VARS[pass_panel])) { $cad = $HTTP_POST_VARS[cad_panel]; $user = $HTTP_POST_VARS[user_panel]; $pass = $HTTP_POST_VARS[pass_panel]; require('config/dados.php'); $busca = "SELECT * FROM login WHERE username='$user' AND password='$pass'"; $verifica = mysql_query($busca); $valida = mysql_num_rows($verifica); $campo = mysql_fetch_array($verifica); $campo_nome = $campo[nome_completo]; $campo_usuario = $campo[username]; $campo_senha = $campo[senha]; $campo_cadastro = $campo[cadastro]; if(($valida = 1)) { $_SESSION["nome"] = $campo_nome; $_SESSION["username"] = $campo_usuario; $_SESSION["senha"] = $campo_senha; $_SESSION["cadastro"] = $campo_cadastro; if(($campo_cadastro = 'Administrador')) { header("location: painel.php"); } //Fecha IF Administrador if(($campo_cadastro = 'Aluno')) { header("location: painel.php"); } //Fecha IF Aluno if(($campo_cadastro = 'Professor')) { header("location: painel.php"); } //Fecha IF Professor } else { header ("location: index.php"); } } } } ?> O session_start() deve ser a primeira coisa do site, entende? :D Compartilhar este post Link para o post Compartilhar em outros sites
grldesign 0 Denunciar post Postado Dezembro 3, 2003 Prescot-san, fiz tudo como você indicou e simplesmente não está passando os valores das variaveis da sessao de pagina para página. O que pode estar acontecendo? Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Dezembro 3, 2003 Cara, só pra fazer um teste, faça isso: <html><body><form method="POST" action="gravar.php"> Nome: <input type="text" name="nome" size="20"></p> <p><input type="submit" value="Enviar"></p></form></body></html> <?session_start();$nome = $_POST[nome];$_SESSION[nome] = $nome;?><script language="JavaScript" type="text/javascript"> location.href="mostrar.php"; </script> <?session_start();$nome = $_SESSION[nome];echo $nome;?>Vá no index.php e digite alguma coisa, clique em enviar, ele vai pra página "gravar.php" e vai ser redirecionada para a "mostrar.php", veja se aparece alguma coisa, se aparecer a sessão no server tá funfando, mas se não aparecer nada, escolha outro servidor. ;) Compartilhar este post Link para o post Compartilhar em outros sites
grldesign 0 Denunciar post Postado Dezembro 4, 2003 Prescot, estou testando as sessions no meu pc, mas não funciona nem da maneira como você explicou para fazer.Não sei o que posso fazer e preciso disso com urgência.... tem algo mais que se possa fazer? um webserver + atualizado talvez...pode ser? Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Dezembro 4, 2003 Cara, de uma procurada na documentação do php.net, lá explica como configurar, ;) Compartilhar este post Link para o post Compartilhar em outros sites