Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DoisReal

Exibir dados do usuário que está logado.

Recommended Posts

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.