I intend to keep my session active without ending for 24 hours. On a computer or on a cell phone with the screen on, it works, but if you lock the screen after two minutes, the session ends. I will post my code:
First I configured php.ini:
session.cookie_lifetime 86400 86400
session.gc_maxlifetime 86400 86400
Now I’m going to publish the code, where I’m using it at the beginning of each page:
<code>$lifetime = 86400; // 24 horas em segundos
if (session_status() == PHP_SESSION_NONE) {
session_start(); // Inicia a sessão se ainda não estiver iniciada
// Renova o cookie de sessão para que ele expire após 24 horas do último acesso
setcookie(session_name(), session_id(), time() + $lifetime);
// Verifica se a sessão está válida (se as variáveis necessárias estão definidas)
if (!isset($_SESSION["usuarioNome"]) || !isset($_SESSION["usuarioSenha"])) {
// Se a sessão não é válida, redireciona para a página de login
header("Location: ../index.html");
// Inclui a conexão com o banco de dados e define o fuso horário
require_once 'conexao.php';
date_default_timezone_set('Europe/Lisbon');
<code>$lifetime = 86400; // 24 horas em segundos
if (session_status() == PHP_SESSION_NONE) {
session_start(); // Inicia a sessão se ainda não estiver iniciada
}
// Renova o cookie de sessão para que ele expire após 24 horas do último acesso
setcookie(session_name(), session_id(), time() + $lifetime);
// Verifica se a sessão está válida (se as variáveis necessárias estão definidas)
if (!isset($_SESSION["usuarioNome"]) || !isset($_SESSION["usuarioSenha"])) {
// Se a sessão não é válida, redireciona para a página de login
header("Location: ../index.html");
exit;
}
// Inclui a conexão com o banco de dados e define o fuso horário
require_once 'conexao.php';
date_default_timezone_set('Europe/Lisbon');
</code>
$lifetime = 86400; // 24 horas em segundos
if (session_status() == PHP_SESSION_NONE) {
session_start(); // Inicia a sessão se ainda não estiver iniciada
}
// Renova o cookie de sessão para que ele expire após 24 horas do último acesso
setcookie(session_name(), session_id(), time() + $lifetime);
// Verifica se a sessão está válida (se as variáveis necessárias estão definidas)
if (!isset($_SESSION["usuarioNome"]) || !isset($_SESSION["usuarioSenha"])) {
// Se a sessão não é válida, redireciona para a página de login
header("Location: ../index.html");
exit;
}
// Inclui a conexão com o banco de dados e define o fuso horário
require_once 'conexao.php';
date_default_timezone_set('Europe/Lisbon');
Where then I have a function that checks whether the session is active or not:
url: 'logout_status.php',
window.location.href = '../index.html';
<code>$(function(){
setInterval(function(){
$.ajax({
url: 'logout_status.php',
method: 'get',
dataType: 'json'
})
.done(function(retorno){
})
.fail(function(erro){
window.location.href = '../index.html';
console.log(erro);
});
}, 60000);
});
</code>
$(function(){
setInterval(function(){
$.ajax({
url: 'logout_status.php',
method: 'get',
dataType: 'json'
})
.done(function(retorno){
})
.fail(function(erro){
window.location.href = '../index.html';
console.log(erro);
});
}, 60000);
});
logout_status.php
<code>require("validsessao.php");
$response = array("logout" => isset($_SESSION['usuarioNome']) ? true : null);
header('Content-Type: application/json');
echo json_encode($response);
<code>require("validsessao.php");
$response = array("logout" => isset($_SESSION['usuarioNome']) ? true : null);
header('Content-Type: application/json');
echo json_encode($response);
</code>
require("validsessao.php");
$response = array("logout" => isset($_SESSION['usuarioNome']) ? true : null);
header('Content-Type: application/json');
echo json_encode($response);
Everything works fine, but when I use my cell phone and log in and leave the session logged in and lock the screen, after two minutes the session ends and it shouldn’t end. Can you help?