Ir para conteúdo

POWERED BY:

Arquivado

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

Déby Thomaz

[Resolvido] Erro na session?

Recommended Posts

Após você criar a sessão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca isso na página que tu recebe o ID da sessão para a consulta mysql.

No caso aqui embaixo:

 

if (mysql_num_rows($query) > 0) {

$x = mysql_fetch_array($query);

//session_start();

// registrando a session com um array com o login e a senha.

$_SESSION['MeuLogin'] = array("login" => $login, "senha" => $senha, "logado" => "S");

$_SESSION['nivel'] = $x['nivel'];

$_SESSION['login'] = $x['login'];

$_SESSION['senha'] = $x['senha'];

$_SESSION['cod_cliente'] = $x['cod_cliente'];

 

echo '<pre>';

print_r($_session);

echo '</pre>';

 

Certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
if (!isset($_SESSION)) {
  session_start();
}
?>
isso ta errado...

 

o session_start(), tem que estar no inicio de tudo...

Mas, está no começo de tudo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
if (!isset($_SESSION)) {
  session_start();
}
?>
isso ta errado...

 

o session_start(), tem que estar no inicio de tudo...

A session ta vindo vazia, pq ela não é iniciada.

 

Substitua o código acima por apenas: session_start();

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
if (!isset($_SESSION)) {
  session_start();
}
?>
isso ta errado...

 

o session_start(), tem que estar no inicio de tudo...

A session ta vindo vazia, pq ela não é iniciada.

 

Substitua o código acima por apenas: session_start();

 

Fica vazio... :(/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que tem na página que a session é criada?

Tem isso aqui:

 

<?php
/* logar.php */
session_start();

include("config.php");
unset($_SESSION['MeuLogin']);
// pegando dados do formulário
$login = $_REQUEST["login"];
$senha = $_REQUEST["senha"];

$consulta = "select * from cliente where login='$login' and senha='$senha'";

$query = mysql_query($consulta);

if (!$query) {
die("Erro ao select da tabela login. Técnico:" . mysql_error());
}

		if($login == "administrador" and $_REQUEST['senha'] == "déby1101") {
			$_SESSION['MeuLogin'] = array("login" => $login, "senha" => $senha, "logado" => "S"); 
			$_SESSION['nivel'] =  "9";
			header("location: admin.php?status=1"); }
		else {
		
// verificando se encontrou registros do login e senha no banco de dados.
if (mysql_num_rows($query) > 0) {
	$x = mysql_fetch_array($query);
	//session_start();
	// registrando a session com um array com o login e a senha.
	$_SESSION['MeuLogin'] = array("login" => $login, "senha" => $senha, "logado" => "S");
	$_SESSION['nivel'] = $x['nivel'];
	$_SESSION['login'] = $x['login'];
	$_SESSION['senha'] = $x['senha'];	
	$_SESSION['cod_cliente'] = $x['cod_cliente'];
	echo '<pre>';
   print_r($_session);
   echo '</pre>';
	// redirecionando para a pagina registrada.
	header("location: ex_empresa.php?status=1");
} else {

		// redirecionando para o formulario de login com o erro.
		header("location: index.php?erro=Login incorreto");
		
	}
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você só precisa saber se o valor está na sessão, o que está na sessão. Se não estiver na sessão, tem que descobrir por que não está lá, porque não foi registrada.

Desculpe pessoal, mas este tópico já era pra estar resolvido se não houvesse tanta gente atravessando o raciocínio meu e do membro com dificuldade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça uma página de retorno das variaveis a parte pra saber se elas estao indo bonitinhas:

 

Página-teste de retorno

 

Teste.php

 

<?php

session_start();

echo 'ID Cliente: '.$_SESSION['cod_cliente'];

?>

Troque a pagina no header pra testar.

 

Verifique se nas páginas que vão receber os dados o session_start() ta incluido.

 

Troca/Altera no Logar.php

$consulta = "select * from cliente where login='".$login."' and senha='".$senha;

_empresa.php

$y = "SELECT * FROM ordem_servico WHERE id_cliente=".$_SESSION['cod_cliente'];
$retorno = mysql_query($y);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hey, eu fiz assim:

 

<?php
/* logar.php */
session_start();
echo '<pre>';

include("config.php");
unset($_SESSION['MeuLogin']);
// pegando dados do formulário
$login = $_REQUEST["login"];
$senha = $_REQUEST["senha"];

$consulta = "select * from cliente where login='$login' and senha='$senha'";

$query = mysql_query($consulta);

if (!$query) {
die("Erro ao select da tabela login. Técnico:" . mysql_error());
}

		if($login == "administrador" and $_REQUEST['senha'] == "déby1101") {
			$_SESSION['MeuLogin'] = array("login" => $login, "senha" => $senha, "logado" => "S"); 
			$_SESSION['nivel'] =  "9";
			header("location: admin.php?status=1"); }
		else {
		
// verificando se encontrou registros do login e senha no banco de dados.
if (mysql_num_rows($query) > 0) {
	$x = mysql_fetch_array($query);
	//session_start();
	// registrando a session com um array com o login e a senha.
	print_r($_SESSION);
	$_SESSION['MeuLogin'] = array("login" => $login, "senha" => $senha, "logado" => "S");
	$_SESSION['nivel'] = $x['nivel'];
	$_SESSION['login'] = $x['login'];
	$_SESSION['senha'] = $x['senha'];	
	$_SESSION['cod_cliente'] = $x['cod_cliente'];
	// redirecionando para a pagina registrada.
	header("location: ex_empresa.php?status=1");
} else {

		// redirecionando para o formulario de login com o erro.
		header("location: index.php?erro=Login incorreto");
		print_r ($_SESSION); 
 		echo '</pre>'; 

	}
}

?>

Aí veio essa mensagem:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\eu salvei\logar.php:4) in C:\xampp\htdocs\eu salvei\logar.php on line 42

 

Array

(

[nivel] => 5

[login] => Treetech

[senha] => cli0001

[cod_cliente] =>

)

 

O nivel, o login e a senha, eu estou pegando da tabela 'cliente', e o cod_cliente eu estou pegando da tabela 'ordem_servico' (pois, eu quero pegar a 'OS', da tabela ordem_servico, onde o id_cliente seja igual ao id da tbl 'cliente'), tanto que se eu coloco o id igual à 6, vem oq eu quero direitinho.

 

Será que não é por causa disso o erro? Não tenho que adicionar mais alguma coisa nesse código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você inicia sessão no config.php ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não...

No config.php tem isso aqui:

 

<?
//arquivo de conexão com o bd

$host = 'localhost'; //sempre deixe o local host
$user = 'root'; // usuário do db
$pass = ''; //senha do db
$database = 'sist_login'; //o nome do banco de dados
$db = mysql_connect ($host, $user, $pass) or die (mysql_error()); //conecção com o  mysql

$basedados = mysql_select_db($database) or die (mysql_error()); //seleciona o database escolhido
?>

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.