php variabili a tempo

trattorino

Utente Attivo
23 Lug 2016
173
1
18
42
Ragazzi ciao a tutti, mi afido a qualcuno che ha un idea per quello che vi spiegherò, in poche parole ho due tabelle
1 tabella = last_visit
2 tabella = last_activity
la prima tabella rilascia questo dato = 1
la seconda tabella rilascia questo dato =1
questi dati fissi vengono rilasciati se un utente nel mio sito non accede da 24 ore

se dovesse accedere nel lasso del tempo delle 24 ore quei due dati delle tabelle cambiano e non rimangono uguali.
bene fin qui posso estrapolare stramite la funzione if la possibilità di capire se un utente non accede nelle 24 ore
usando questa formila


PHP:
$tabellauno = $1;
$tabelladue = $1;
if($tabellauno == 1){
echo 'sono offline';
}
bene fin qui ci sono, vorrei tramite questi due dati riuscire a capire se un utente è online nell'arco di 5 minuti
perche i dati nelle due tabelle cambiano se un utente è online in un arco di tempo es:
5 minuti tabella1=32233 tabella2 =433434
35 minuti tabella1=3433433 tabella2 =5334
24 ore di inattivita = tab1=222222 tab2=222222

bene qui vengo alla domanda, è possibile creare una funzione che mi permette di capire che i dati delle tabelle cambiano in un tot di tempo e fargli stampare i dati in un echo?
una funzione che mi puo permettere di capire che se i numeri dentro le tabelle cambiano vuol dire che l'utente è online, spero di essere stato chiaro, e spero che voi maghi del php mi aiutate
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
Ciao, una via potrebbe essere quella di estrarre il valore dalla tabella, salvarlo in una variabile di sessione e periodicamente confrontare il valore di tale variabile con quello contenuto in tabella, aggiornando di volta in volta il valore della variabile di sessione.
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
Quando l'utente effettua il login, recuperi il valore di last_activity e lo salvi in una variabile di sessione.
PHP:
// query di estrazione dei dati
// ... estrai i dati che ti servono, tra cui anche last_activity
// salvandoli in un array ($row, ad esempio)

// inizializzazione delle due variabili
$_SESSION['current_activity'] = $row['last_activity'];
$_SESSION['last_activity'] = $row['last_activity'];

Ora disponi della variabile current_activity e last_activity in ogni pagina in cui inizializzi una sessione.

L'idea è quella di monitorare i valori assunti da last_activity presente in tabella, per vedere se cambia o meno, aggiornando di volta in volta la variabile current_activity ponendola uguale al valore di last_activity e aggiornando altresì la variabile last_activity ponendola uguale al valore presente in tabella, mettendoci in condizione di poterle confrontare molteplici volte.

A tal proposito, la seguente funzione.

PHP:
// l'unico argomento che la funzione richiede è l'oggetto PDO della connessione al db
function check_activity(PDO $conn) {
     // se le due variabili di sessione sono settate...
    if (isset($_SESSION['last_activity']) && isset($_SESSION['current_activity'])) {
        // preparo la query per recuperare last_activity dalla tabella
        $query = "SELECT last_activity from utenti where id_utente = ?";
        $stm = $conn->prepare($query);
        $stm->execute(array($_SESSION['id_utente']));
        $riga = $stm->fetch(PDO::FETCH_ASSOC);
        // se le var current e last sono uguali
        if ($_SESSION['current_activity'] == $_SESSION['last_activity']) {
            // aggiorna il valore di current
            $_SESSION['current_activity'] = $_SESSION['last_activity'];
            // aggiorna il valore di last ponendolo uguale a quello presente orora in tabella
            $_SESSION['last_activity'] = $riga['last_activity'];
            // se le variabili poste a confronto sono uguali torna 0, altrimenti 1
            return 0;

        } else {
            // aggiorna il valore di current
            $_SESSION['current_activity'] = $_SESSION['last_activity'];
            // aggiorna il valore di last ponendolo uguale a quello presente orora in tabella
            $_SESSION['last_activity'] = $riga['last_activity'];
            // se le variabili poste a confronto sono diverse torna 1
            return 1;
        }
    }
}

Ora, ogni volta che desideri vedere se il valore in tabella è rimasto invariato o è cambiato rispetto all'ultima volta che hai controllato, ti basta richiamare la funzione check_activity e controllare il valore da essa assunto.
 
Ultima modifica:

trattorino

Utente Attivo
23 Lug 2016
173
1
18
42
ciao forse si puo trovare una soluzione piu semplice in quanto ho scoperto che le tabelle non rilasciano numeri a caso, ma rilasciano il tempo in secondi che l'utente trascorre nel sito, ad esempio la tabella ultima visita mi rilascia questo dato
1470438244
che sono i secondi che possono essere convertiti qui http://coderstoolbox.net/unixtimestamp/
in local time zone, ora non c'è un modo per convertirli usando php? oppure che ne so calcolare la data di adesso in automatico e fare la qualcosa per calcolare questi secondi 1470438244

ecco trovato il codice per convertire questo dato
PHP:
<?php
    $epoch = 1441216544;
    echo date('r', $epoch);

?>

ora visto che so l'ultima attivita dell'utente come posso far in modo di far sapere che l'utente è online
come posso ifilare dentro un eco la sottrazione della data dell'ultima attività con la data in tempo reale non fissa? in modo da poter ottenere i minuti di attivita
 
Ultima modifica:

trattorino

Utente Attivo
23 Lug 2016
173
1
18
42
dopo smanettamenti vari ho risolto così ora posso stabilire se una
persona è online oppure inattiva e off

PHP:
 $epoch = $tempob;
$dataunoh = date('H', $epoch);
$dataunom = date('i', $epoch);
date_default_timezone_set('r');
$a=time();
$datadueh = date('H', $a);
$dataduem = date('i', $a);

$Sommam = ($dataunom - $dataduem);
$Somma = ($dataunoh - $datadueh);
$Sommaa = '-';
$Sommab = '';
$risultatoh = str_replace($Sommaa,$Sommab,$Somma);
$risultatom = str_replace($Sommaa,$Sommab,$Sommam);
$calcolo = (60 * $risultatoh);
$risultatofinale = ($Sommam + $calcolo);




if($risultatofinale > 300){

echo '<img src="http://wwwxxxcploads/upload-image-if/off.png" class="img-off">' ;

}   elseif ($risultatofinale < 300 && $risultatofinale > 20) {

echo '<img src="http://wwwxxx.it/uploads/upload-image-if/inattivo.png" class="img-off">' ;

}  elseif ($risultatofinale < 20) {

echo '<img src="http://www...it/uploads/upload-image-if/online.png" class="img-off">' ;

}
1+ x me ciao
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
30
Io ti ho dato una possibile soluzione per quello che hai chiesto, ossia determinare se un valore all'interno di una tabella è cambiato o meno.

Capire invece se una persona è online oppure no è una questione diversa.

Contento che tu abbia risolto, +100 per te :)
 
  • Like
Reactions: Sabo and trattorino
Discussioni simili
Autore Titolo Forum Risposte Data
M Passaggio variabili array php su un tasto jq PHP 3
K [PHP] Problema con variabili concatenate. PHP 1
maxnegri Eliminare url index.php con variabili e reindirizzare alla home del sito PHP 7
zorro [PHP] passaggio di variabili PHP 7
Domenico_Falco1 Rendere dinamico un sito web con chiamate ajax e php e variabili json PHP 12
S [PHP] Estrarre elementi array su più variabili PHP 5
M Inviare variabili da menu a tendina a pagina php con post PHP 6
M [PHP] Selezione da menu a discesa con 2 variabili PHP 0
A php echo get con variabili PHP 4
N [PHP] Registrare variabili all'interno di un ciclo PHP 3
F [PHP] Cercare voci uguali nel db e unire alcune variabili PHP 0
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
F [PHP] if(isset($_POST['Invia'])) non mi riconosce le variabili PHP 3
K [PHP] variabili di tipo numerico nei Form PHP 1
B [PHP] variabili globali in chiamate ajax PHP 0
K [PHP] Passaggio Variabili Senza Refresh Di Pagina PHP 1
Emix [PHP] Check - Select e recupero variabili PHP 40
P [PHP] link con variabili e while PHP 5
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
Mangiuz Variabili semplici PHP su Javascript Ajax 1
A [PHP] Passare variabili tra pagine diverse PHP 2
elpirata [PHP] Passaggio di dati tra variabili PHP 1
A Problema con getCurrentPosition e passaggio variabili da javascript a PHP Javascript 3
E [PHP] creazioni nuove variabili per modulo di stampa PHP 1
S [Javascript] variabili tra pagine php/ajax Javascript 1
L Seo e variabili php SEO e Posizionamento 4
damiano.f [PHP] variabili su immagine e registrazione dati su db PHP 0
N [PHP] aiuto su variabili e colori PHP 4
fabryx [PHP]RISOLTO: Trasformare righe in colonne assegnando singole variabili PHP 10
trattorino [PHP] unire due variabili PHP 0
A Passare variabili da javascript a PHP PHP 8
F Aggiornamento variabili php PHP 1
E php problema incremento e decremento di 2 variabili con click da pulsante PHP 0
W Passaggio variabili da JS a PHP Javascript 3
C Leggere variabili esterne ad una classe in php 5.2 PHP 6
B Passaggio di variabili a query in php PHP 3
L variabili php in database PHP 1
gandalf1959 funzione mail() e variabili su un link nel body in formato xxx.php?$a=$codicecontrollo PHP 2
J Recuperare variabili da php a java Javascript 2
M [risolto] variabile php costituita da variabili testo PHP 12
R Passaggio variabili php PHP 3
G funzione include di php e paramentri variabili PHP 4
X Eseguire controllo su variabili php PHP 1
M Modificare le variabili di un file php attraverso un form PHP 1
S Controlli variabili php PHP 11
A passare variabili da javascript a php PHP 3
1 passaggio variabili php PHP 1
D_evil1991 inviare variabili da php al javascript PHP 0
C passare variabili da php a javascript Javascript 13
F scrivere con le variabili php su dreamweaver PHP 3

Discussioni simili