Ir para conteúdo

Arquivado

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

Marcos Vilela Alves

SESSION simplesmente nao está sendo gravada

Recommended Posts

Boa tarde,

estou passando por um problema novo.

é o seguinte. estou instanciando uma sessão e direcionando para outra pagina.

quando a outra página é carregada, a sessão que instanciei não vem.

segue:

<?php session_start();

if (!isset($_SESSION['han_avaliacao']) || isset($_GET['a'])) {
    $_SESSION['han_avaliacao'] = $_GET['a'];
    
}
//se nao tem usuario direciona para a login
if (empty($_SESSION['han_usuario'])) {
    header("Location:login.php");
}
?>

O problema é que quando carrega a login, a variável $_SESSION['han_avaliacao'] vem vazia.

<?php session_start();

echo "<PRE>";var_dump($_SESSION);die();
?>

o código acima apresenta o retorno

array(0) {

}

na realidade, tinha que vir o valor da sessao que instanciei.

alguem já passou por isso?

as configurações do server estão todas para manter as sessoes, uma vez que outros sistemas no mesmo server funcionam normalmente, porem através de um MVC.

OBS. imprimi o ID da sessao nas duas paginas, e em todos os casos, o id era sempre o mesmo, o que indica que deveria vir o valor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente existe um valor para que possa ser pego através do GET pelo parâmetro a?

Se está vazio é porque não tem valor.

Adicione:


function obterGET($g){
return null != (filter_input(INPUT_GET, $g))?filter_input(INPUT_GET, $g): 0;
}
seu código:

$_GET['a']
Por:

obterGET("a");
Se retorna como zero você está buscando vamor através de um parâmetro inexistente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos testes que fiz, sempre tenho passado o valor para a.

e antes de fazer o redirect com o header, a $_SESSION['han_avaliacao'] está com o valor correto.

o fato, é que depois do redirect esse valor se perde.

mas por garantia, apliquei o codigo que você passou, e o problema continuou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o objetivo de debugar, comece simplificando a coisa, use o seguinte para criar a sessão:

<?php
session_start();
$_SESSION['han_avaliacao'] = 'teste';


if (empty($_SESSION['han_usuario'])) {
    header("Location:login.php");
}
?>

Veja se a sessão será criada, se for, ai vamos para o próximo passo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de testar o seu script no servidor e tudo retornou como esperado:
http://edgarserra.com/exemplofuncional/x.php?a=abc

Verifique junto ao suporte do seu servidor algum tipo de problema relacionado à sessões.

Tirando isto só se no direcionamento estiver sendo alterado o subdomínio (acessa com www e no redirecionamento vai sem ou vice-versa).

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.