Ir para conteúdo

POWERED BY:

Arquivado

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

leozeferino

Problemas com Session

Recommended Posts

Pessoal,

 

 

Fiz um código em PHP dessa maneira:

 

<?php// conexao com o banco de dadosinclude "conexao.php";// utilizacao de sessionsession_start();$_SESSION['x']="a";				if (isset($_SESSION['x'])echo "x";?>

 

Porém ele não retorna nada. A session não está sendo criada.

 

Verifiquei se o servidor suporta session utilizando

<?php

phpinfo();

?>

e vi que

Session Support: enabled

 

O que pode estar ocorrendo de errado??

 

 

Alguma dica???

 

 

 

Abraços! <_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

seu echo está errado. Se quiser dar echo em x de qualquer jeito ai você precisa fazer x = $_SESSION['x'] ou já dar echo direto no variável de sessão, como abaixo.

 

tente assim:

 

if (!isset($_SESSION)) {  session_start();}$_SESSION['x'] = 'teste';echo $_SESSION['x'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o "echo" uso só para verificar se existe ou não a session.O código que você me passou funciona na página.Mas se eu colocoecho $_SESSION['x']; na página em que é encaminhada, ele não imprime nada.Se eu colocar o código abaixo, não imprime.if (isset($_SESSION['x']) echo $_SESSION['x'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,Verificando aqui, o esquema funciona. A session é criada na página. O problema é quando vou para outra página.Estou utilizando esse código para encaminhar:echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=links/home.php'>";O código abaixo não acontece está encaminhando a página.header("Location: links/home.php");Será que o problema é esse: utilizando o <meta HTTP...> ele não "segura" a session??Por que o header não está funcionando em minha página?? Lembrando que todo o código PHP está acima do código HTML.Brigadão pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Por que esse código funciona:

 

<?phpheader('Location: http://www.example.com');// conexao com o banco de dadosinclude "conexao.php";// utilizacao de sessionif (!isset($_SESSION)) {  session_start();}

e esse código não funciona:

 

<?php// conexao com o banco de dadosinclude "conexao.php";// utilizacao de sessionheader('Location: http://www.example.com');if (!isset($_SESSION)) {  session_start();}

O código da página conexao.php é para abrir conexão com o bd mysql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi direito oque faz, já tinha olhada no manual mas mesmo assim fiquei meio confuso.Este comando guarda tudo em buffer certo? Mas quando ele envia esses dados que estão no buffer se você não deu nenhum comando para finalizar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro foi a duvido do leozeferino sobre sessão... Agora estou com uma pequena duvido sobre o funcionamento correto do obstart. Como perguntei anteriormente:"Não entendi direito oque faz, já tinha olhada no manual mas mesmo assim fiquei meio confuso.Este comando guarda tudo em buffer certo? Mas quando ele envia esses dados que estão no buffer se você não deu nenhum comando para finalizar?"

Compartilhar este post


Link para o post
Compartilhar em outros sites

BEm, se entendi agora....

 

você quer sabero o que isso aqui faz, certo? ta comentado nas linhas

 

<?phpob_start();  //libera o buffer de saida (apaga se tiver cheio)// conexao com o banco de dadosinclude "conexao.php"; // faz inclusao do arquivo aqui // utilizacao de sessionheader('Location: http://www.example.com'); // redireciona para a localizaçãoif (!isset($_SESSION)) { // se a sessao nao esta setada,,,session_start(); // inicia a sessao do site}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu li sim e sei que tem controle de buffer e memória em outras linguagens, mas a minha pergunta foi o seguinte...quando uso header location com ob_start antes não tenho dar ob_end_flush() para liberar oque está em buffer? Pq no manual está feito assim, a minha dúvida é só o porque você não fez assim, e os exemplos que vi também não estavam assim. É pq quando mudar de página o que esta em buffer é liberado?

 

EXEMPLO MANUAL PHP:

<?phpob_start();echo "Hello\n";setcookie("cookiename", "cookiedata");ob_end_flush();?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?phpsession_start();include "conexao.php";$_SESSION['x']="a";				if (isset($_SESSION['x']){echo $_SESSION['x'];}?>

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.