gdrcd 5.5 ultimo_refresh
gdrcd 5.5 ultimo_refresh postato il 12/07/2021 11:27:26 nel forum programmazione, open source e hosting e modificato da haruka il 12/07/2021 11:37:26
Scusate, ci sto diventando scema da tutto il weekend, ma non capisco dove è contenuta la query che aggiorna l'ultimo_refresh quando si usa il sito.
Spiego meglio. A me interessa che subito dopo il login ultimo_refresh non si aggiorni e che lo faccia solo dopo, con l'uso del sito.
Questo perché alla registrazione del personaggio il campo ultimo_refresh in database è: "0000-00-00 00:00:00". E tale rimane fino a che il personaggio appena registrato non fa il suo primo login.
Semplicemente vorrei che comparisse un avviso (e questo è già programmato) in accordo con questo controllo (che dovrebbe far apparire un avviso di benvenuto o al primo login, o se quel personaggio non viene loggato da più di 30 giorni)
date_default_timezone_set('Europe/Rome');
$record = gdrcd_query("SELECT nome, url_img, ultimo_refresh FROM personaggio WHERE nome = '".$_SESSION['login']."'");
$datalimite = $record['ultimo_refresh'];
$trentagiorni = date('Y-m-d', mktime(0,0,0,date(m),date(d)-30,date(Y)));
//var_dump ($datalimite);
//var_dump ($trentagiorni);
if ( $datalimite < $trentagiorni)
Se entro in db e setto a mano il valore ultimo_refresh come 0000-00-00 00:00:00, il controllo funziona.
Pensavo che modificando il file login.php qui
if($PARAMETERS['mode']['log_back_location'] == 'OFF') {
$_SESSION['luogo'] = '-1';
/*Inserisco nei presenti*/
gdrcd_query("UPDATE personaggio SET ora_entrata = NOW(), ultimo_luogo='-1', ultimo_refresh = NOW(), last_ip = '".$_SERVER['REMOTE_ADDR']."', is_invisible = 0 WHERE nome = '".gdrcd_filter('in', $_SESSION['login'])."'");
/*Redirigo alla pagina del gioco*/
header('Location: main.php?page=mappaclick&map_id='.$_SESSION['mappa'], true);
} else {
/*Inserisco nei presenti*/
gdrcd_query("UPDATE personaggio SET ora_entrata = NOW(), ultimo_refresh = NOW(), last_ip = '".$_SERVER['REMOTE_ADDR']."', is_invisible = 0 WHERE nome = '".$_SESSION['login']."'");
/*Redirigo alla pagina del gioco*/
header('Location: main.php?dir='.$_SESSION['luogo'], true);
}
ultimo_refresh non si aggiornasse subito dopo il login. Invece lo fa, come lo fa poi ad ogni altra azione compiuta sul sito.
Ho messo sottosopra il codice, ma non riesco a trovare in quale altro file mi fa un update di ultimo_refresh.
In alternativa, in che altro modo potrei far scattare la parte di codice contenuta dopo il controllo, senza adoperare ultimo_refresh?
Pagine → 1
12/07/2021 11:42:23
Ho fatto una ricerca estesa in tutto il codice di GDRCD#5.5.1 e, oltre a login.php, l'unico altro luogo in cui viene effettivamente aggiornato ultimo_refresh è presenti.php .
Qui nella versione vanilla:
//Refresh presenza.
if(isset($_REQUEST['disponibile']) === true) {
$query = "UPDATE personaggio SET ultimo_refresh = NOW(), disponibile=".gdrcd_filter('num', $_REQUEST['disponibile'])." WHERE nome = '".gdrcd_filter('in', $_SESSION['login'])."'";
} elseif(isset($_REQUEST['invisibile']) && ($_SESSION['permessi'] >= GAMEMASTER)) {
$query = "UPDATE personaggio SET ultimo_refresh = NOW(), is_invisible=".gdrcd_filter('num', $_REQUEST['invisibile'])." WHERE nome = '".gdrcd_filter('in', $_SESSION['login'])."'";
} else {
$query = "UPDATE personaggio SET ultimo_refresh = NOW() WHERE nome = '".gdrcd_filter('in', $_SESSION['login'])."'";
}
gdrcd_query($query);
Durante la navigazione del sito, questo file viene richiamato in continuazione per aggiornare la lista del presenti. Aggiornando la lista, viene anche aggiornato lo stato dell'utente e il campo ultimo_refresh, appunto.
Kasa.
12/07/2021 11:52:46
kasa ha scritto:
Durante la navigazione del sito, questo file viene richiamato in continuazione per aggiornare la lista del presenti. Aggiornando la lista, viene anche aggiornato lo stato dell'utente e il campo ultimo_refresh, appunto.
Kasa.
E' quello. Che tonta, pensavo gestisse solo gli stati. Grazie Kasa.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Exclusive Villa GdR ↗
RAID Shadow Legends ↗
World of Tanks ↗