[risolto] Settaggio campo tabella Database in uscita.

radioButton

Utente Attivo
26 Dic 2013
35
0
6
Arezzo
Ciao a tutti.
Mi stavo domandando quale possa essere la maniera di settare un campo di una tabella presente in un database all'uscita da una pagina web.
Mi spiego meglio. Supponiamo che io sia un utente di un sito che richiede il login per essere visitato. Se sono all'interno del sito e ne voglio uscire
posso:
1) Cliccare un eventuale tasto di logout: in questo caso ho già una risposta alla mia domanda in quanto dovrò passare da un file logout.php
nel quale il programmatore avrà scritto tra le varie istruzioni anche quella di settare il determinato campo in questione.
2) Posso uscire cliccando brutalmente sulla 'x' in alto a destra di chiusura pagina: in questo caso come posso fare affinchè il sistema si renda conto
che al click sulla 'x' o comunque alla chiusura di pagina deve essere settato il fatidico campo? E' possibile farlo o la mia domanda non può
avere risposta in quanto non è possibile catturare nessun evento di input?

Ciao e grazie a tutti coloro che avranno avuto la pazienza di leggere queste mie sconclusionate righe.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Potresti controllare ciclicamente la presenza dell'utente nel sito, facendogli spedire ogni 30 secondi una richiesta ajax ad una tua pagina php che aggiorna un campo di "ultimo refresh", salvato da qualche parte nel database, con il timestamp del momento.

Se un utente lascia il sito, lo capisci dal fatto che "ultimo refresh" non viene più aggiornato (con 30 secondi di polling, direi che 90 secondi di ritardo sono un tempo più che plausibile per dichiarare un utente "uscito")

A questo punto pianifichi un cronjob sul tuo sito che ogni 2 minuti setta il dato che ti interessa per tutti gli utenti dove il timestamp attuale sottratto dell'campo di "ultimo refresh" dia 90 o più secondi di risultato.
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Personalmente sconsiglio la cattura dell'evento di chiusura della finestra del browser, non che sia infattibile ma perché essendo la tua -presumo- una meccanica di funzionamento base del software, è meglio lavorare su controlli che il client non è in grado di manipolare o alterare.

Edit: anche l'uso di ajax implica una componente lato client a ben pensare, ma nonostante si possa usare il noscript per creare un iframe nascosto auto-aggiornanto nel caso in cui il client non usi javascript effettivamente anche quello rimane manipolabile.


A questo punto mi sorge spontaneo chiedere a cosa ti serve il set di questo dato ? Qual è il problema preciso ? Magari capendo questo si possono trovare altre soluzioni.
 
Ultima modifica:

radioButton

Utente Attivo
26 Dic 2013
35
0
6
Arezzo
Personalmente sconsiglio la cattura dell'evento di chiusura della finestra del browser, non che sia infattibile ma perché essendo la tua -presumo- una meccanica di funzionamento base del software, è meglio lavorare su controlli che il client non è in grado di manipolare o alterare.

Edit: anche l'uso di ajax implica una componente lato client a ben pensare, ma nonostante si possa usare il noscript per creare un iframe nascosto auto-aggiornanto nel caso in cui il client non usi javascript effettivamente anche quello rimane manipolabile.


A questo punto mi sorge spontaneo chiedere a cosa ti serve il set di questo dato ? Qual è il problema preciso ? Magari capendo questo si possono trovare altre soluzioni.

Innanzitutto vi ringrazio per gli utili consigli che mi state fornendo.
Per quanto riguarda la domanda che mi hai posto cercherò di spiegare di seguito perchè vorrei controllare o meno la presenza dell'utente;
in pratica è come se volessi crerare una chat; sul lato sinistro della pagina di questa chat c'è l'elenco di tutti gli utenti presenti in chat in quel momento.
Quando un utente entra in chat il suo nome compare nella lista, quando ne esce, se effettua il logout, posso tranquillamente fare in modo che anche il suo nome scompaia dalla lista,
ma se per uscire non effettua il logout che succede? Il suo nome rimane lì?
Effettivamente avevo pensato di creare un campo nel database utenti, chiamarlo per esempio 'inline' e settarlo con 'sì' o 'no' ma se l'utente esce senza logout come faccio a catturare l'evento uscita che innesca il settaggio a 'no' del campo in questione?
Ho fatto un discorso un po' contorto e me ne scuso ma spero di essere stato un minimo chiaro.
Credo comunque che i vostri consigli mi possano aiutare, ci rifletterò sù.
Ciao.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Se la tua chat per funzionare ha bisogno di usare javascript allora -personalmente- ti consiglierei la soluzione del polling, esposta nel mio primo intervento nella discussione.

Addirittura nel tuo caso puoi creare la query di update nella pagina che recupera i messaggi di chat, in questo modo sei sicuro che chi legge la chat risulti effettivamente online, e come tempo per considerare un utente uscito puoi usare due o tre volte il tempo di aggiornamento dei tuoi messaggi di chat.

Certo, sempre ammesso che la chat non funzioni col pushing..
 

radioButton

Utente Attivo
26 Dic 2013
35
0
6
Arezzo
Se la tua chat per funzionare ha bisogno di usare javascript allora -personalmente- ti consiglierei la soluzione del polling, esposta nel mio primo intervento nella discussione.

Addirittura nel tuo caso puoi creare la query di update nella pagina che recupera i messaggi di chat, in questo modo sei sicuro che chi legge la chat risulti effettivamente online, e come tempo per considerare un utente uscito puoi usare due o tre volte il tempo di aggiornamento dei tuoi messaggi di chat.

Certo, sempre ammesso che la chat non funzioni col pushing..

Io ti ringrazio davvero tanto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
T [Photoshop] Problema creazione pennello personalizzato [RISOLTO] Photoshop 3

Discussioni simili