Jump to content

establecer sessoes com php


neverdie
 Share

Recommended Posts

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

Link to comment
Share on other 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.

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other 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.

Link to comment
Share on other 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!

Link to comment
Share on other 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.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.