Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 459

Problema com Sessions / Cookies

18-08-2017 12:04

Estou com problema com Sessions / Cookies, mesmo configurando o tempo de permanencia dos cookies dentro do php.ini do servidor de 1 em 1 hora o sistema desloga meus usuários.
Perceba que no php.ini eu fiz a configuração dos parametros para 8 horas session.gc_maxlifetime 28800 segundos = 8horas / session.cache_expire 480 minutos = 8horas
mesmo assim de hora em hora ele manda o usuário para fora do sistema para logar novamente.
PHP.ini
file_uploads = On max_execution_time = 600 max_input_time = 600 upload_max_filesize = 400M post_max_size = 400M memory_limit = 256M register_globals = off safe_mode = Off allow_url_include = on allow_url_fopen = on date.timezone = America/Sao_Paulo output_buffering = 4096 display_errors = off output_buffering = on default_charset = "UTF-8" session.gc_maxlifetime = 28800 session.gc_probability = 1 session.gc_divisor = 1000 session.cache_expire = 480 session.entropy_length = 0 session.entropy_file = session.hash_bits_per_character = 5

Arquivo Login.php

<? include "dbconfig.php"; include "antisql.php"; $acao = antiSQL($_GET['acao']); if ($acao == "sair") { $_SESSION[email] = ""; $_SESSION[id] = ""; $_SESSION[nivel] = ""; echo "<script>window.location='index.php?sair=sim';</script>"; } $sql = mysql_query("SELECT * FROM usuarios WHERE email='$_POST[email]' AND senha='$_POST[senha]'"); if (!@mysql_result($sql,0,email)) { echo "<script>window.location='index.php?erro=sim';</script>"; } else { $_SESSION[id] = mysql_result($sql,0,id); $_SESSION[email] = mysql_result($sql,0,email); $_SESSION[nivel] = mysql_result($sql,0,nivel); mysql_query("UPDATE usuarios SET data='".date("d/m/Y")."',hora='".date("H:i")."' WHERE email='$_POST[email]' AND senha='$_POST[senha]'"); echo "<script>window.location='index.php?parabens=sim';</script>"; } mysql_close(); ?>

Tem alguma coisa faltando que está mandando meus usuários para fora do sistema de 1 em 1 hora ? obrigado
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17808
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema com Sessions / Cookies

18-08-2017 13:51

Para cookies em PHP tem a definição dentro do setcookie.

<?php $value = 'alguma coisa de algum lugar'; setcookie("CookieTeste", $value); setcookie("CookieTeste", $value, time()+3600); /* expira em 1 hora */ setcookie("CookieTeste", $value, time()+3600, "/~rasmus/", ".example.com", 1); ?>

Fonte: http://php.net/manual/pt_BR/function.setcookie.php

Não se se já tentou esse método.

Já no caso da session tem algumas definições de tempo mostradas no site do php.net http://php.net/manual/en/function.sessi ... params.php

Eu estou testando um modelo de script aqui para ver se a session dura duas horas. Funcionando posto aqui.
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17808
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema com Sessions / Cookies

20-08-2017 13:20

Fiz um teste aqui e a session funcionou por mais de uma hora. Segue o script.

Para testar tire o comentário // da linha

//$_SESSION['valor'] = "valor salvo";

Salve o arquivo e atualize o mesmo no navegador uma vez. Após comente a linha novamente e verifique se a session criada não é eliminada.

<?php $Lifetime = 7200; $separator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/"; $DirectoryPath = dirname(__FILE__) . "{$separator}SessionData"; //in Wamp for Windows the result for $DirectoryPath //would be C:\wamp\www\your_site\SessionData is_dir($DirectoryPath) or mkdir($DirectoryPath, 0777); if (ini_get("session.use_trans_sid") == true) { ini_set("url_rewriter.tags", ""); ini_set("session.use_trans_sid", false); } ini_set("session.gc_maxlifetime", $Lifetime); ini_set("session.gc_divisor", "1"); ini_set("session.gc_probability", "1"); ini_set("session.cookie_lifetime", "0"); ini_set("session.save_path", $DirectoryPath); session_start(); //$_SESSION['valor'] = "valor salvo"; if(isset($_SESSION['valor'])) { echo $_SESSION['valor']; } ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 459

Re: Problema com Sessions / Cookies

07-01-2018 17:53

Não entendi muito bem o exemplo ?
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 459

Re: Problema com Sessions / Cookies

07-01-2018 17:55

Estou fazendo teste novamente aqui.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17808
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema com Sessions / Cookies

08-01-2018 19:13

O script que vai usar a session tem que iniciar com o session_start.

<?php session_start(); ..

Já ao nome da SESSION defina assim:

$_SESSION["id"] = mysql_result($sql,0,id); $_SESSION["email"] = mysql_result($sql,0,email); $_SESSION["nivel"] = mysql_result($sql,0,nivel);

Quanto ao problema em si vou deixar uma referência, aqui no meu pc eu uso o servidor Xampp com a configuração padrão.

Também uso session e abro a SESSION de manhã, uso um script para ir armazenando alguns valores. Meu computador hiberna várias vezes, e até chego a fechar a página do navegador.

Quando volto a noite os valores continuam salvos e sendo exibidos na página.
Então posso crer que possa ser alguma validação no script que elimina os valores, ou alguma configuração do navegador.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 459

Re: Problema com Sessions / Cookies

18-01-2018 16:58

o arquivo de login está assim
Conversando com usuário percebi que ele só desloga quando fica inativo mais de 15 minutos tem como mudar isso no php.ini ? obrigado
<? include "includes/dbconfig.php"; include "includes/antisql.php"; session_start(); $acao = antiSQL($_GET['acao']); if ($acao == "sair") { $id_saida = $_SESSION['id_saida']; /* Deleta o Registro do Usuário Quando clica no Botão Sair */ mysql_query("DELETE FROM usuarios_online WHERE id_usuario = $id_saida "); /* Reseta o Auto Increment da Tabela usuarios_online */ mysql_query("ALTER TABLE usuarios_online AUTO_INCREMENT = 1"); $_SESSION[usuario] = ""; $_SESSION[id] = ""; $_SESSION[nivel] = ""; $_SESSION[email] = ""; $_SESSION[nome_p] = ""; $_SESSION[nome_i] = ""; echo "<script>window.location='entrar.php?sair=sim';</script>"; } $sql = mysql_query("SELECT * FROM usuarios WHERE usuario='$_POST[usuario]' AND senha='$_POST[senha]'"); if (!@mysql_result($sql,0,usuario)) { echo "<script>window.location='entrar.php?erro=sim';</script>"; } else { $sessao = session_id(); $ip = $_SERVER['REMOTE_ADDR']; $tempo_on = date('Y-m-d H:i:s'); $id = mysql_result($sql,0,'id'); $usuario = mysql_result($sql,0,'usuario'); $nivel = mysql_result($sql,0,'nivel'); $email = mysql_result($sql,0,'email_p'); $nome_p = mysql_result($sql,0,'nome_p'); $nome_i = mysql_result($sql,0,'nome_i'); $_SESSION['id'] = $id; $_SESSION['usuario'] = $usuario; $_SESSION['nivel'] = $nivel; $_SESSION['email'] = $email; $_SESSION['nome_p'] = $nome_p; $_SESSION['nome_i'] = $nome_i; //EXCLUI USUARIOS QUE ESTEJAM INATIVOS NO TEMPO DEFINIDO COMO EXPIRAÇÃO //mysql_query("DELETE FROM usuarios_online WHERE tempo <= '$tempo_fim'"); $sqlch = mysql_query("SELECT * FROM usuarios_online WHERE sessao='$sessao' AND id_usuario='$id'"); $total = mysql_num_rows($sqlch); if($total){ mysql_query("UPDATE usuarios_online SET tempo='$tempo_on' WHERE sessao='$sessao'"); }else{ mysql_query("INSERT INTO usuarios_online(id_usuario,nome_p,nome_i,sessao,tempo,ip)VALUES('$id','$nome_p','$nome_i','$sessao','$tempo_on','$ip')"); $sql_c = mysql_query("SELECT id FROM contador"); $total_c = mysql_num_rows($sql_c); if($total_c){ mysql_query("UPDATE contador SET visitas=visitas+1"); }else{ mysql_query("INSERT INTO contador(visitas)VALUES(1)"); } } mysql_query("UPDATE usuarios SET data='".date("d/m/Y")."',hora='".date("H:i")."' WHERE usuario='$_POST[usuario]' AND senha='$_POST[senha]'"); echo "<script>window.location='index.php?parabens=sim';</script>"; } mysql_close(); ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17808
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema com Sessions / Cookies

18-01-2018 19:09

O valor de tempo de duração da session é definido nessa linha do php.ini

; After this number of seconds, stored data will be seen as 'garbage' and ; cleaned up by the garbage collection process. ; http://php.net/session.gc-maxlifetime session.gc_maxlifetime=1440

Onde 1400 são os segundos, que dá 24 minutos.

Você tem que conferir ai no seu php.ini se tem esse valor ou se está 900, que equivale a 15 minutos.

Caso não for isso é configuração no script. Como essa linha que está comentada no seu script, que visa desconectar o usuário de acordo com o tempo.

//mysql_query("DELETE FROM usuarios_online WHERE tempo <= '$tempo_fim'");

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 459

Re: Problema com Sessions / Cookies

19-01-2018 15:11

da uma olhada por favor, está muito estranho o meu servidor, não consigo configurar de maneira alguma

o que tem de errado ?

www.condominiovillabella.com.br/sistema/info.php
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17808
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema com Sessions / Cookies

19-01-2018 16:37

No seu phpinfo() está como 900, ou seja, 15 minutos.

session.gc_maxlifetime 900 900

Aqui no meu phpinfo() está como

session.gc_maxlifetime 1440 1440

Se sua hospedagem é oferecida por uma empresa. Tem que ver como eles para alterarem esse tempo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 459

Re: Problema com Sessions / Cookies

20-01-2018 02:01

eu mesmo consigo alterar essas configurações dentro do arquivo php.ini no ftp

eu ja tentei alterei pra 8 horas mas não funciona de maneira alguma.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17808
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: Problema com Sessions / Cookies

20-01-2018 18:32

Pode ser algum erro do servidor. Já tentou o exemplo de tentar trabalhar com o cookie? Tem um exemplo que postei nesse post.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado