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 <?php
declaração de abertura antes de qualquer outra coisa. Verifique também se não há espaços em branco / guias antes da <?php
declaração de abertura .
- Após o
header
redirecionamento, 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_globals
está desativado, você pode verificar isso no php.ini
arquivo 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
$_SESSION
matriz 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.com
para yourdomain.com
nã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, localhost
mas 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.php
arquivo 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)