Ir para conteúdo

POWERED BY:

Arquivado

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

Edielson Rego Valerio

A SESSION não ta passando dados para a outra pagina.

Recommended Posts

Olá pessoal, sou novo por aqui, estou desenvolvendo um sistema de login para um site utilizando a SESSION... meu sistema é simples, tem uma pagina validação que recebe o post para validar o login, quando o login é validado é usado a session para gravar os dados e redireciona para a pagina do usuário... na pagina usuário a session é zerada, ou seja, fica vazia... ja tentei quase tudo porém o problema persiste..

 

validacao.php

 

<?php
if (isset ($_POST ['entrar'])){
session_name('login');
session_start();
$usuario = $_POST['cpf'];
$senha = $_POST['senha'];
$host= 'apoidores.mysql.dbaas.com.br';
$bd= 'xxxxxx';
$senhabd= 'xxxxxx';
$conexao = mysql_connect($host, $bd, $senhabd);
if (!$conexao) {
die("Erro de conexão com localhost, o seguinte erro ocorreu -> " . mysql_error());
} else {
$banco = mysql_select_db($bd, $conexao);
}
if (!$banco) {
die("Erro de conexão com banco de dados, o seguinte erro ocorreu -> " . mysql_error());
}
else {
$sql = "SELECT `id`, `nome` FROM `usuarios` WHERE `cpf` = ". $usuario ." AND `senha` = ".$senha ." LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_assoc($query);
}
if (empty($resultado)) {
// Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado
echo"<script language='javascript' type='text/javascript'>alert('cpf ou senha incorretos');window.location.href='index.php';</script>";
}
else {
parse_str($resultado['id']);
parse_str($resultado['nome']);
$_SESSION['UsuarioID'] = parse_str($resultado['id']);
$_SESSION['UsuarioNome'] = parse_str($resultado['nome']);
// Redireciona o visitante
header("Location: usuario.php");
}
}
?>
usuário.php
<?php
session_name('login');
session_start();
$nome= $_SESSION['usuarioNome'];
?>
<html>
<head>
<title></title>
</head>
<body style="color: rgb(0, 0, 0);" alink="#ee0000" link="#0000ee"
vlink="#551a8b">
<div
style="text-align: center; font-family: FrankRuehl; background-color: rgb(102, 255, 153);"><big><big><big>MOVIMENTO
NOVOS PARTIDOS- MNP<br>
ÁREA PRIVADA PARA APOIADORES<br>
SEJA BEM VINDO (A)<?php echo "$nome";?></big></big></big></div>
<div style="text-align: center;"><big><big><big><br>
</big></big></big>
<h3><big><big><big>Apoiador (a), essa é a sua área exclusiva de
atendimento.</big></big></big></h3>
<h3><big><big><big>Aqui você tem os seguintes serviços:</big></big></big></h3>
</div>
<br>
<br>
<big><big><big><br>
<br>
<br>
<br>
</big></big></big>
</body>
</html>

 

 

Por favor alguém pode ajudar??

Compartilhar este post


Link para o post
Compartilhar em outros sites

O comando session_start(); , tem que estar no topo da página, antes de qualquer coisa! E ele tem que estar em todas as páginas que você for usar a sessão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara vou te dar um exemplo que eu uso e funciona bem demais, daí você edita para sua necessidade.

Vou postar aqui pra você separado o jeito que eu utilizo.

Vamos lá...

Primeiro minha página de login.

index.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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TESTE</title>


</head>

<body>
<div id="login">
    <form name="login" id="formlogin" action="sqls/valida-usuario.php" method="post">
		<span><strong>Nome Usuário</strong>:</span>
        <input type="text" name="usuario" autofocus="autofocus" class="usuario" /><br />
        <span><strong>Senha</strong>:</span>
        <input type="password" name="senha" class="senha" /><br />
        <span><strong>Empresa</strong>:</span>
        <input type="text" name="empresa" class="empresa" /><br /><br />
        <strong><input type="submit" name="enviar" value="Entrar" class="sublogar" /></strong>
        
    </form>
<div class="logo-login"><img src="imagens/logo.png" width="400px" height="350px" /></div>
</div>
</body>
</html>

Segunda página é a valida_usuario.php

<?php
//inicia o session para manter os dados do banco de dados na página e informa que a página conectaBD.php é requisitada
	session_start();

require("../connections/sjulocal.php");
include("../msgs/msgs.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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teste</title>

</head>

<body>
<div id="login">
<div class="logo-login-valida-usuario"><img src="../imagens/logo.png" width="400px" height="350px" /></div>
<?php
//PEGA AS VARIAVEIS DO FORMULÁRIO DA TELA DE LOGIN.
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$empresa = $_POST['empresa'];
//FINALIZA A BUSCA DOS DADOS DIGITADOS NO FORMULÁRIO

//CRIPTOGRAFA A SENHA
$senha = base64_encode($senha);
//FINALIZA CRIPTOGRAFIA DO CAMPO SENHA

//VERIFICA SE A EMPRESA QUE ESTÁ TENTANDO LOGAR ESTÁ ATIVA NO SISTEMA.
	$valida_emp = mysql_query("SELECT * FROM TB_EMPRESA WHERE T_EMPRESA = '$empresa'")or die(mysql_error());
	$row_valida_emp = mysql_num_rows($valida_emp);
	$emp_ativo = mysql_result($valida_emp, 0, 'B_EMP_ATIVO');
	if ($emp_ativo == 0){
		msg_emp_inativa();
		}else{
			$logo = mysql_result($valida_emp, 0, 'T_APELIDO');
			$_SESSION['T_APELIDO'] = $logo;
			//VERIFICA SE TEM ALGUM CAMPO VAZIO E COMEÇA A VALIDAÇÃO DOS DADOS PARA LOGAR NO SISTEMA
				if(empty($usuario)||empty($senha)||empty($empresa)){
					msg_campo_vazio();
					}else{
						//VERIFICA SE O USUÁRIO EXISTE
						$sqlbuscausuario = mysql_query("SELECT * FROM TB_USUARIOS WHERE T_USUARIO='$usuario' AND T_SENHA='$senha' AND T_EMPRESA='$empresa'") or die(mysql_error());
						$row_buscausuario = mysql_num_rows($sqlbuscausuario);
						$alterarsenha = mysql_result($sqlbuscausuario, 0, 'B_SENHA_ALTERADA');
						//VERIFICA SE A CONSULTA RETORNOU ALGUM VALOR
						if ($row_buscausuario == 0){
									msg_falha();
							}else{
									if ($alterarsenha==1){
										$id_usuario = mysql_result($sqlbuscausuario, 0, 'I_COD_USUARIO');
										$nome_empresa = mysql_result($sqlbuscausuario, 0, 'T_EMPRESA'); 
										$nome_usuario = mysql_result($sqlbuscausuario, 0, 'T_USUARIO');
										$_SESSION['I_COD_USUARIO'] = $id_usuario;
										$_SESSION['T_EMPRESA'] = $nome_empresa;
										$_SESSION['T_USUARIO'] = $nome_usuario;
										msg_sucesso();
									}else{
										$id_usuario = mysql_result($sqlbuscausuario, 0, 'I_COD_USUARIO');
										$nome_empresa = mysql_result($sqlbuscausuario, 0, 'T_EMPRESA'); 
										$nome_usuario = mysql_result($sqlbuscausuario, 0, 'T_USUARIO');
										$_SESSION['I_COD_USUARIO'] = $id_usuario;
										$_SESSION['T_EMPRESA'] = $nome_empresa;
										$_SESSION['T_USUARIO'] = $nome_usuario;
										msg_altera_senha();
										}
								}
						
						}

			}
/*
*/
?>
</div>
</body>
</html>

E por fim minha página de menu.php

<?php
//inicia o session para manter os dados do banco de dados na página e informa que a página conectaBD.php é requisitada
	session_start();
	if (empty($_SESSION['I_COD_USUARIO'])){
			header("Location: index.php");
			die();
		}
	require("connections/sjulocal.php");
	include("msgs/msgs.php");
	$emplogado = $_SESSION['T_EMPRESA'];
	$codusuario = $_SESSION['I_COD_USUARIO'];
	$nomeusuario = $_SESSION['T_USUARIO'];
	$logocliente = $_SESSION['T_APELIDO'];
?>
<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teste</title>

</head>

<body>

</body>
</html>

Espero ter ajudado qualquer dúvida comenta aí que te explico.

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.