Ir para conteúdo

Arquivado

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

Samuel Cunha

Session não está gravando

Recommended Posts

<?php
session_start();
if (!isset($_SESSION['test'])) {
	echo "Sessao nao gravada!<br>";
	$_SESSION['test'] = 1;
	echo "<br><a href='/teste_session.php'>Tentar Novamente</a><br>";
}
else
{
	echo "Sessão funcionando! Contador: ", (++$_SESSION['test']);
	echo "<br><a href='/teste_session.php'>Recarregar</a><br>";
}
echo "<br>Session ID: " . session_id() . "<br>" . 
	"Diretorio session: " . session_save_path() . "<br>";
if (!is_writable(session_save_path())) {
	echo "Sem permissão para gravar no diretório.<br>";
}
?>

Pessoal, bom dia!

 

Estou com um problemão no PHP, e estou achando que é uma falha no provedor UOL.

Gostaria de saber se alguém já passou por um problema parecido e como resolveu.

 

Meu problema é simplesmente a $_SESSION não gravar o seu conteúdo para a sessão.

 

E para piorar o problema é intermitente, ou seja, as vezes funciona e as vezes para de funcionar, agora por exemplo, está com falha.

 

 

Segue url para testes:

www.transportadoranet.com.br/teste_session.php

 

 

Obrigado,

Samuel Cunha

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Rogério,

 

Obrigado pela resposta.

Fiz a alteração sugerida, porém o problema persiste.

 

Na verdade o session_id() retorna o código da sessão corretamente, envia o cookie confirmado pelo depurador (F12) do navegador.

 

Verifiquei as permissões de gravações no diretório tmp das sessions.

 

O problema é que a variável dentro da $_SESSION não está salvando, não consigo pensar em mais nenhuma possibilidade.

 

Estou suspeitando que seja um problema no provedor UOL, pois as vezes volta a funcionar.

 

Mais alguma sugestão?

 

Até mais,

Samuel Cunha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste em outro ambiente, nem que seja local pra ver se o problema é realmente da hospedagem.

Outra coisa, mostre os erros na tela com:

ini_set( "display_errors", true );
error_reporting( E_ALL ^ E_NOTICE );

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
ini_set( "display_errors", true );
error_reporting( E_ALL ^ E_NOTICE );
session_start();

if (empty($_SESSION['test'])) {
	$_SESSION['test'] = 1;
	echo "Sessao nao gravada!<br>";
	echo "<br><a href='/teste_session.php'>Tentar Novamente</a><br>";
}
else
{
	$_SESSION['test']++;
	echo "Sessão funcionando! Contador: " . $_SESSION['test'];
	echo "<br><a href='/teste_session.php'>Recarregar</a><br>";
}
echo "<br>Session ID: " . session_id() . "<br>" . 
	"Diretorio session: " . session_save_path() . "<br>";
if (!is_writable(session_save_path())) {
	echo "Sem permissão para gravar no diretório.<br>";
}
$xpath = session_save_path() . "/sess_" . session_id(); 
session_write_close();
echo "Conteudo do arquivo ($xpath): " . file_get_contents($xpath);
?>

Olá,

 

Usei o empty(), ini_set() e error_reporting(), porém ainda não funciona.

 

Sobre testar em outro servidor, tenho certeza que irá funcionar, mas eu não tenho servidor para testar.

Minhas aplicações são pequenas em PHP, normalmente escrevo no meu computador e já envio para o provedor via FTP.

 

Existe algum outro provedor PHP gratuito para eu testar isso?

 

O código fonte de teste é apenas este mesmo:

 

 

 

Obrigado,

Samuel Cunha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passei pela mesma situação. O problema é o redirecionamento.

 

Em algumas telas redirecionava para endereço com o "www", e em outros sem.

 

Se passar de meudominio.com.br/teste.php para www.meudominio.com.br/teste2.php, e vice versa, a SESSION se perde.

 

Padronizei os redirecionamentos e funcionou.

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.