Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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.
Só para constar, econtrei na web, que era o header que eliminava a session.
entao fiz no lugar
echo "<script> window.location = 'login.php'</script>";
die();
e o erro persisti.
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.A sessao foi criada sim.
em ambas as situações, a sessao "han_avaliacao" é criada e recebe o valor na primeira página, porém quando o redirecionamento acontece, a variáve $_SESSION vem vazia na login.php.
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).
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:
}seu código:$_GET['a']Por:
obterGET("a");Se retorna como zero você está buscando vamor através de um parâmetro inexistente.