Aumentando tempo de sessão do PHP - Session Eterna

Alterando o tempo de expiração do cookie e o diretório aonde os arquivos da session são salvos, ficará eterno o tempo da sessão do PHP.

É necessário atenção para não startar sessão ao acesso de BOT de buscadores, para não criar uma lista muito grande de arquivos.

É recomendado a limpeza periódica deste diretório.

Criando diretório aonde armazena os arquivos da session

  • primeiro criar diretório aonde irá ficar os arquivos de session
mkdir /home/usuario/_session_/; 
chmod 777 /home/usuario/_session_/; 

Configuração via código

No código PHP, deve ser configurado ANTES do SESSION_START:

session_set_cookie_params(99999999, '/', '.DOMINIO.com.br'); 
session_save_path("/home/usuario/_session_/"); 
//somente agora session start
session_start();

Configuração via htaccess (Apache)

php_value session.save_path "/home/usuario/_session_/"
php_value session.cookie_lifetime "99999999"
php_value session.cookie_domain ".DOMINIO.com.br"

Verificação de session start para não bots

//Bot
$agent  = strtolower($_SERVER['HTTP_USER_AGENT']);
$ip             = $_SERVER['REMOTE_ADDR'];
if(substr_count($agent, "msnbot") OR substr_count($agent, "Slurp") OR substr_count($agent, "googlebot") OR substr_count($agent,  'ia_archiver') OR substr_count($_SERVER['REMOTE_ADDR'], '66.194.6'))
       define('BOT', 1);
} else {
        define('BOT', 0);  
}
 //SESSION
session_set_cookie_params(99999999, '/', '.DOMINIO');
session_save_path('/home/USUARIO/_session_');
ini_set('session.gc_maxlifetime',       99999999);
//Não starta session para bots
if(!BOT){
          session_start();
}

~~DISCUSSION~~

 
sessao.txt · Última modificação: 2009/12/22 15:33 (edição externa)
 
Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki