DoisReal 0 Denunciar post Postado Julho 18, 2011 Olá Pessoal, Estou com problemas para exibir os dados do usuário logado. Já pesquisei em alguns tópicos, mas continua não funcionando pra mim. Vamos aos meus códigos: Página onde o usuário informa seu e-mail e senha: <form name="form_cadastra_usuario" method="POST" action="validando_login.php" onsubmit="return valida (this)"> <div style="position:absolute; left:443px; top:116px">E-mail: <input type="text" name="email" size="50" maxlength="50"></div> <div style="position:absolute; left:445px; top:146px">Senha: <input type="text" name="senha" size="10" maxlength="10"></div> <br><br><br><br><br> <p align='center'><input type="Submit" value="Logar"></p> </form> Página que verifica e-mail e senha informados: <?php $email = $_POST["email"]; $senha = $_POST["senha"]; $sql = "SELECT email, senha FROM usuario WHERE email='$email' and senha='$senha'"; $conexao = mysql_connect("localhost", "root", "usbw") or die(mens(0)); $db = mysql_select_db("site",$conexao) or exit(mens(1)); $sql = mysql_query($sql) or die ("Houve um erro na gravação dos dados. Por favor, clique em voltar e verifique se os campos obrigatórios estão preenchidos!"); $num_linha = mysql_num_rows($sql); if ($num_linha > 0) { session_start(); $_SESSION['usuario'] = $email; header("Location: menu.php"); } else { echo "<br><b><br><h2 align='center'><font face='Arial Black' color='red'>Erro: </font><font face='Arial Narrow' color='#000064'>e-mail ou senha inválido!</font></h2>"; echo "<br><br><center><a href='efetuando_login.php'>Clique aqui e volte à tela de login!</a>"; } ?> Cria sessão para verificar se usuário está logado: <?php session_start(); if ( !session_is_registered('usuario')) { header("Location:efetuando_login.php"); } ?> Agora finalmente a pagina onde não consigo imprimir o email do usuário logado: <?php include "sessao_logado.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="Description" CONTENT="Classificados de Carros Gratuíto Online de Porto Alegre"></meta> <meta name="KeyWords" CONTENT="classificados, oline, gratuito, porto alegre, carro, posto de gasolina, vender, comprar, veículos, financiamento"></meta> <title> ..::ClasCarPoa - Menu::.. </title> </head> <body bgcolor="#EEEEEE"> <center> [color="#FF0000"]<?php echo "Seu email é: ".$_SESSION['usuario'];?>[/color] <br><br> <h2 align='center'><font face="Arial Narrow" color="#000064">Seja Bem Vindo</font></h2> <table> <tr><td><a href="cadastra.php"><font color="black">Incluir novo carro</font></a></td></tr> <tr><td><a href="alteracao.php"><font color="black">Alterar carro</font></a></td></tr> <tr><td><a href="exclusao.php"><font color="black">Consultar carro</font></a></td></tr> <tr><td><a href="consultar.php"><font color="black">Excluir carro</font></a></td></tr> <tr><td><a href="logout.php"><font color="black">Sair</font></a></td></tr> </table> </center> </body> </html> O que estou fazendo de errado ? Compartilhar este post Link para o post Compartilhar em outros sites
Rzorr 0 Denunciar post Postado Julho 18, 2011 Cara eu não entendo muito to começando agora mas por que $sql = mysql_query($sql) or die ("Houve um erro na gravação dos dados. Por favor, clique em voltar e verifique se os campos obrigatórios estão preenchidos!"); se o campo é obrigatorio porque não faz um script que só deixa mandar os dados depois de estar udo peenchido desculpa se to falnado coisa errada mas não custa tenta né abraço Compartilhar este post Link para o post Compartilhar em outros sites
merlinus 1 Denunciar post Postado Julho 18, 2011 Faltou o session_start() na ultima pagina. Compartilhar este post Link para o post Compartilhar em outros sites
DoisReal 0 Denunciar post Postado Julho 18, 2011 Cara eu não entendo muito to começando agora mas por que $sql = mysql_query($sql) or die ("Houve um erro na gravação dos dados. Por favor, clique em voltar e verifique se os campos obrigatórios estão preenchidos!"); se o campo é obrigatorio porque não faz um script que só deixa mandar os dados depois de estar udo peenchido desculpa se to falnado coisa errada mas não custa tenta né abraço Sim, eu não coloquei todo, o codigo. Fiz uma verificação usando Javascript. Esse trecho vou remover. Mas esse não é o problema... Faltou o session_start() na ultima pagina. No inicio da ultima pagina tem o código: <?php include "sessao_logado.php"; ?> Dentro da sessão logado tem: <?php session_start(); if ( !session_is_registered('usuario')) { header("Location:efetuando_login.php"); } ?> Se eu colocar iniciar a sessão novamente nesta ultima pagina ele vai informar que já existe uma sessão iniciada por causa do include e vai ignorar esta. Compartilhar este post Link para o post Compartilhar em outros sites
merlinus 1 Denunciar post Postado Julho 18, 2011 Então.. entendo a lógica mas vejo aqui no meu caso. è igual ao seu, tenho um include de verificação aonde consta o session_start, mas se não coloco o session_start em cada página ele dá falha e não recupera a sessão... Compartilhar este post Link para o post Compartilhar em outros sites
DoisReal 0 Denunciar post Postado Julho 19, 2011 Tentei colocar o Start_Session() na ultima página. Porém não deu certo. :( Compartilhar este post Link para o post Compartilhar em outros sites
Artur Luiz 0 Denunciar post Postado Julho 19, 2011 Poderia postar a saída atual do script? Compartilhar este post Link para o post Compartilhar em outros sites
DoisReal 0 Denunciar post Postado Julho 19, 2011 Notice: A session had already been started - ignoring session_start() in E:\Programas Portable\USBWebserver v8_en\root\site\menu.php on line 20 Compartilhar este post Link para o post Compartilhar em outros sites
Artur Luiz 0 Denunciar post Postado Julho 19, 2011 Mas tira o session_start() do menu.php e mostra a saída como estava antes. Compartilhar este post Link para o post Compartilhar em outros sites
DoisReal 0 Denunciar post Postado Julho 19, 2011 Dae não aparece o email. exemplo: echo "Seja bem vindo" . $_SESSION['usuario']; Ae só mostra na tela: Seja Bem Vindo Compartilhar este post Link para o post Compartilhar em outros sites
Artur Luiz 0 Denunciar post Postado Julho 19, 2011 Da um var_dump() no $_SESSION pra saber quais variáveis estão definidas. E posta a saida aqui. Compartilhar este post Link para o post Compartilhar em outros sites
DoisReal 0 Denunciar post Postado Julho 19, 2011 Imprimiu --> string(0) Mas como ? Se quando o usuario loga a acontece: $_SESSION['usuario'] = $emai; Compartilhar este post Link para o post Compartilhar em outros sites
merlinus 1 Denunciar post Postado Julho 20, 2011 tem algo estranho. Seu codigo está certo, fiz um teste com ele ele so retirando a parte do mysql e funcionou aqui certinho, imprimindo o email como solicitado. Será que o erro não está em alguma outra parte do codigo que você não postou? Compartilhar este post Link para o post Compartilhar em outros sites