Jump to content
Sign in to follow this  
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.

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


Link to post
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
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.