MiguelTb 2 Denunciar post Postado Fevereiro 4, 2011 Eu não sei o que fiz praticamente não mexi em nada e agora ele está retornando sempre isso: array(3) { ["email"]=> &NULL ["nome"]=> &NULL ["nivel"]=> &NULL } Valor nulo pras 3 session que ele abre em login.php Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 4, 2011 poste o trecho em que você cria as sessions. assim cara, qndo for 'testar realmente', feche o browser, e abra novamente. para não se perder com 'sujeiras' na sessão. (tem um plugin do firefox que limpa sessions, web developer) Compartilhar este post Link para o post Compartilhar em outros sites
MiguelTb 2 Denunciar post Postado Fevereiro 4, 2011 William, o trecho que cria as sessões: } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_array($query); // Se a sessão não existir, inicia uma if (!isset($_SESSION)) session_start(); // Salva os dados encontrados na sessão $_SESSION['email'] = $resultado['email']; $_SESSION['nome'] = $resultado['nome']; $_SESSION['nivel'] = $resultado['nivel']; header("Location: http://www.revistahei.net/2011/"); // Redireciona o visitante } ?> Mas to achando que está faltando algo no index.php, as sessões ficam armazenadas onde? no browser? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 4, 2011 Mas to achando que está faltando algo no index.php, as sessões ficam armazenadas onde? no browser? no servidor faz o seguinte: $resultado = mysql_fetch_array($query); echo '<pre>'; var_dump( $resultado ); lembra da 'prática' do var_dump(), pois é. Se acostume com ele, e aprenda a usar. Compartilhar este post Link para o post Compartilhar em outros sites
MiguelTb 2 Denunciar post Postado Fevereiro 4, 2011 Deu esse erro: bool(false) Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/revistahei.net/www/2011/admin/login.php:34) in /home/revistahei.net/www/2011/admin/login.php on line 38 Warning: Cannot modify header information - headers already sent by (output started at /home/revistahei.net/www/2011/admin/login.php:34) in /home/revistahei.net/www/2011/admin/login.php on line 44 Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 4, 2011 Pronto, o fetch não está ocorrendo. depois que você chama uma vez, você 'gasta' uma linha do retorno, e olhe oque você fez: /* if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado header ("Location: fail.php"); exit; } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_assoc($query); } */ if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado header ("Location: fail.php"); exit; } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_array($query); você tenta chamar 2 vezes sem a menor necessidade!!! além de duplicar o if/else também desnecessariamente. exclui o primeiro bloco (o que eu deixei dentro do comentário) Compartilhar este post Link para o post Compartilhar em outros sites
MiguelTb 2 Denunciar post Postado Fevereiro 4, 2011 Perfeito! Cara desculpa mesmo o encomodo. Você me ajudou bastante. Vlw man! [Resolvido] =D Código completo pra quem quiser: index.php <?php if(!isset($_SESSION['nivel'])){ echo "Você não está logado!"; } else { if( $_SESSION['nivel'] == "1" ) echo 'você é leitor!'; else if( $_SESSION['nivel'] == "2" ) echo 'você é colunista!'; else if( $_SESSION['nivel']== "3" ) echo 'você é seção!'; else if( $_SESSION['nivel']== "4" ) echo 'você é Administrador Geral!'; } ?> login.php <?php ini_set('display_errors', true); error_reporting(E_ALL); // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s) if (!empty($_POST) AND (empty($_POST['email']) OR empty($_POST['senha']))) { header("Location: index.php"); exit; } // Tenta se conectar ao servidor MySQL mysql_connect('localhost', 'root', 'senha') or trigger_error(mysql_error()); // Tenta se conectar a um banco de dados MySQL mysql_select_db('bancodedados') or trigger_error(mysql_error()); $email = mysql_real_escape_string($_POST['email']); $senha = mysql_real_escape_string($_POST['senha']); // Validação do usuário/senha digitados $sql = "SELECT `email`, `nome`, `nivel` FROM `tabela` WHERE (`email` = '". $email ."') AND (`senha` = '". $senha."') LIMIT 1"; $query = mysql_query($sql) or die ( mysql_error() ); if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado header ("Location: fail.php"); exit; } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_array($query); // Se a sessão não existir, inicia uma if (!isset($_SESSION)) session_start(); // Salva os dados encontrados na sessão $_SESSION['email'] = $resultado['email']; $_SESSION['nome'] = $resultado['nome']; $_SESSION['nivel'] = $resultado['nivel']; header("Location: http://www.revistahei.net/2011/"); // Redireciona o visitante } ?> Vlwww Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 4, 2011 Perfeito! Cara desculpa mesmo o encomodo. Você me ajudou bastante. Vlw man! [Resolvido] =D tranquilo cara, só espero que você tenha aprendido algo, além de só ter resolvido esse script Adote todas as 'práticas' que te fiz seguir, logo logo, você resolverá teus problemas por você mesmo, e poderá ajudar outros usuários. Tendo dúvidas volte aqui, mas não antes de debugar.. você verá que prática incrível. Compartilhar este post Link para o post Compartilhar em outros sites
MiguelTb 2 Denunciar post Postado Fevereiro 4, 2011 Realmente cara, nem conhecia esse comando. Vou usá-lo muito com certeza! Compartilhar este post Link para o post Compartilhar em outros sites