Primeiro, execute as verificações habituais:
- Certifique-se de que
session_start();é chamado antes de qualquer sessão ser chamada. Portanto, uma aposta segura seria colocá-lo no início da sua página, imediatamente após a <?phpdeclaração de abertura antes de qualquer outra coisa. Verifique também se não há espaços em branco / guias antes da <?phpdeclaração de abertura .
- Após o
headerredirecionamento, finalize o script atual usando exit();(Outros também sugeriram session_write_close();e session_regenerate_id(true), você pode experimentá-los também, mas eu usaria exit();)
- Verifique se os cookies estão ativados no navegador que você está usando para testá-lo.
- Verifique se
register_globalsestá desativado, você pode verificar isso no php.iniarquivo e também usá-lo phpinfo(). Consulte isso para saber como desativá-lo.
- Verifique se você não excluiu ou esvaziou a sessão
- Certifique-se de que a chave na sua
$_SESSIONmatriz superglobal não seja substituída em nenhum lugar
- Certifique-se de redirecionar para o mesmo domínio. Portanto, o redirecionamento de um
www.yourdomain.compara yourdomain.comnão leva a sessão adiante.
- Verifique se a extensão do arquivo é
.php(acontece!)
Agora, esses são os erros mais comuns, mas se eles não resolverem o problema, é mais provável que o problema esteja relacionado à sua empresa de hospedagem. Se tudo funcionar, localhostmas não no seu servidor remoto / de teste, provavelmente é o culpado. Portanto, verifique a base de conhecimento do seu provedor de hospedagem (tente também seus fóruns, etc.) Para empresas como FatCow e iPage, elas exigem que você especifique session_save_path. Então assim:
session_save_path('"your home directory path"/cgi-bin/tmp');
session_start();
(substitua "o caminho do diretório inicial" pelo caminho real do diretório inicial. Isso geralmente ocorre no painel de controle (ou equivalente), mas você também pode criar um test.phparquivo no diretório raiz e digitar:
<?php echo $_SERVER['SCRIPT_FILENAME']; ?>
O bit anterior a 'test.php' é o caminho do diretório inicial. E, claro, verifique se a pasta realmente existe dentro do diretório raiz. (Alguns programas não carregam pastas vazias ao sincronizar)