Ricordati di considerare anche i casi in cui gli utenti "si dimenticano" di fare il logout
o di chiudere le pseudo transazioni, oppure lo stesso account aperto da diverse sessioni.
Potrebbe rimanerti il flag a 1 per mesi, oppure pasticci dei quali poi sarai tu il responsabile.
In realtà credo ti convenga tenerti una tabella di log sulla quale puoi anche controllare
i tempi di connessione e confrontarli con il timeout che desideri.
Quindi:
se ti fai una tabella in cui metti id_utente, id_session, time_login, time_expire, id_articolo
risolvi i tuoi problemi semplicemente controllando l'id_articolo e
(time_expire - timeout) > now.
Chiaramente ad ogni operazione sullo stesso id_session vai ad incrementare il time expire
aggiungendo il timeout.