Ir para conteúdo

POWERED BY:

Arquivado

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

allex_carvalho

Session expirando automaticamente em 10 minutos

Recommended Posts

Boa tarde pessoal,

 

Estou desenvolvendo um sistema onde faremos uploads de arquivos grandes por ele. Estou testando aqui o upload com um arquivo de 4.60 GB. Cronometrados 10 minutos a tela fica branca e ao voltar a sessão foi expirada. Se não clicar em nada em 10 minutos, só clicar posteriormente esse tempo volta para a página de login.

 

Isso só acontece quando subo os arquivos para o servidor linux com lampp. No windows isso não acontece.

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sessão é baseada entre o navegador/cliente e o servidor. Se não houver essa interação, a sessão torna-se ociosa e, portanto, irá expirar conforme o tempo definido.

 

Procure as configurações no php.ini e aumente o tempo de sessão.

 

As vezes, sessões compartilhadas podem deletar sessões de outros sistemas, tente o seguinte:

<?php
session_save_path('/path/to/writable/directory/inside/your/account');
ini_set('session.gc_maxlifetime', 3*60*60); // 3 hours
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 100);
ini_set('session.cookie_secure', FALSE);
ini_set('session.use_only_cookies', TRUE);
session_start();

Fonte: http://stackoverflow.com/questions/3476538/php-sessions-timing-out-too-quickly

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela atenção Gabriel e ExtremsX.

 

O procedimento que consta no link ExtremsX, contém na forma que o Gabriel mostrou acima.

 

Tentei na forma que o Gabriel sugeriu e não deu certo. Pelo php.ini já havia setado algumas coisas contida ai. Continua da mesma forma.

Será que isso não é alguma configuração no servidor? Porque no windows está ok.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Allex, na tela branca após expirar, não exibe nenhum erro pra ajudar na resolução?

Se não, tente jogar aquele esquema para retornar tudo q há de errado:

ini_set('error_reporting', E_ALL);
ini_set('display_errors','On');

Caso apareça algo, manda pra gente ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que isso não é alguma configuração no servidor? Porque no windows está ok.

Sim, há essa possibilidade. Possuímos um servidor linux, utilizando Debian, e nunca conseguimos alterar o tempo de sessão. Basicamente, é a mesma situação que a sua.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei pelo chrome (para aproveitar a barra de progresso). Vi que o envio total foi em mais ou menos 5 minutos. Depois ficou mais tempo que isso para tentar achar algum caminho. Ai deu o mesmo erro, tela branca e ao voltar a session havia sido expirada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maykel, essa é a ação para upload:

$pasta = 'arquivos' . base64_decode($_GET['pasta']) . '/';
$recebe_arquivo = $_FILES['arquivos'];
if (!empty($recebe_arquivo['name'])) {
    $total = count($recebe_arquivo['name']);
    for($i = 0; $i < $total; $i++) {
        if (file_exists($pasta . $recebe_arquivo['name'][$i]) ) {
            echo '<script type="text/javascript">confirm("Arquivo existente, deseja substituir?");</script>';
        }
        move_uploaded_file($recebe_arquivo['tmp_name'][$i], $pasta . $recebe_arquivo['name'][$i]);
        $_SESSION['ultimoClick'] = time(); // 1*
    }
}
echo '<script type="text/javascript">location.href="?pasta=' . $_GET['pasta'] . '";</script>';
exit;

ExtremsX, aumentei o limite no servidor, veja:

upload_max_filesize = 102400M
post_max_size = 102400M

1* = Isso aqui é para atualizar o tempo para uma função de deslogar usuário se ficar 10 minutos sem navegar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já inseri o var_dump sim, me retorna as informações do arquivo.

 

O set_time já está com valor 0. max_life está com 24 horas e inseri o cache_expire. Também nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Para arquivos que dão certo o upload retorna os dados corretamente:

array(1) { ["arquivos"]=> array(5) { ["name"]=> array(1) { [0]=> string(9) "index.php" } ["type"]=> array(1) { [0]=> string(20) "application/download" } ["tmp_name"]=> array(1) { [0]=> string(14) "/tmp/phpzFOHfL" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(1687) } } } 

Só que para os arquivos que dão problema ao ver o código fonte não aparece nada, só uma página em branco. O var_dump é a primeira linha da ação de upload.

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.