• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

neverdie

establecer sessoes com php

8 mensagens neste tópico

Bom dia,

Tou sempre  a pedir que me ajudem, ainda nao ajudei muito os outros porque ainda nao tenho muitos conhecimentos...

É o seguinte:

tenho a pagina "login.php" com o segunte codico:




<?php

ob_start();

//colocar a validacao dos dados

include ("ligando.php");

$login = $_POST['login'];
$password = $_POST['password'];

//faz a confirmação de nome e senha no db

$login = mysql_query("SELECT * FROM inde WHERE login='$login' AND password='$password'") or die("erro");

if ( mysql_num_rows($login)==1 ){

$validacao = 1; 

session_start();

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

header ("Location: login_valido.php");

}

else{

?>
<script type="text/javascript">
alert("Login ou senha incorreta")
</script>
<?

echo "<a href=index.html>VOLTAR</a>";

}

?>




A pagina "login_valido.php", com o seguinte codigo:


<?
ob_start();
session_start();


echo $validacao;   //aqui nao esta a funcionar
echo $login;	   //aqui tambem nao esta a funcionar

if ($validacao == 1){

echo "o utilizador esta logado";

}

else

echo "a variavel validacao nao esta a 1";

?>


o que acontece é que as variaveis $login e $validacao esta vazias

Alguem sabe qual sera o problema?

Cumprimentos

Marco

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não as instanciaste antes... Ao usares o header ele vai-te redireccionar para outro ficheiro, ou seja as variáveis que tinhas instanciado no outro não têm nada a ver com o novo.

Usa o include, pode ser que seja aquilo que estás à espera.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Essas variáveis não têm conteudo porque não existem no contexto em que as tentas imprimir.

Deves ter lido um tutorial bastante antigo, que recorria a uma coisa chamada register globals. Actualmente quase nenhuma instlação do php tem essa directiva activa.

As variáveis às quais tens acesso são as que estão no array $_SESSION. As variáveis instancializadas normalmente como $login, só existe desde a sua criação até ao final da execução do script.

Se puseres isto:

echo $_SESSION['login'];

echo $_SESSION['validacao'];

obterás o resultado que queres. E até é mais simpels de perceber.

Mas uma pergunta, para que é que queres passar um mysql resultset de uma pagina para a outra? Não tem lá nenhuma informação pronta a usar directamente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ola!

Obrigado pelas vossas respostas, mas acontece que mesmo com o

echo $_SESSION['login'];

echo $_SESSION['validacao'];

continua sem funcionar....

Para responder ao pedrotuga eu presiso de ter la o login do utilizador para depois fazer consultas na base de dados...

mas essa parte ainda nao ta feita!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso é porque está aí qualquer outra coisa mal.

poe isto então:

echo "<pre>";
print_r( $_SESSION['login']);
print_r ($_SESSION['validacao']);
echo "</pre>";

assim podes ver exactamente o que está na variável

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta em

$_SESSION['login'] ---------> 0

$_SESSION['validacao']---->1

que nao sao os valores esperados

Devo ter algo trocado que me esta a escapar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Atenção ao output buffer. Estás a inicializá-lo mas não estás a enviar o conteúdo para o broswer.

ob_start();

//Codigo

ob_end_flush();

Sobre o output buffer: Output Buffer

Cumps,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta em

$_SESSION['login'] ---------> 0

$_SESSION['validacao']---->1

que nao sao os valores esperados

Devo ter algo trocado que me esta a escapar...

Esses são os valores esperados.

Já agorai... isso ob_start.... porque é que tas a inicializa-lo manualmente?

Podes suprimir essa linha. Não serve para nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora