Originariamente inviato da mystica
Grazie ancora
nel frattempo però mi è venuto un dubbio:
il codice è:

if ((time()-$row['lastIn'])<$scadenza)

ma non si tratta di unità di misura diverse?

time() mi stampa una cosa tipo 1093679278 (ora attuale in secondi giusto?);

$row['lastIn'] mi dà 20040828094729 (secondi + data al contrario);

$scadenza 1200 (lo imposto io, sono secondi vero?)

quindi se faccio la sottrazione, il risultato ha senso?
O forse dovrei trasformare qualche dato?
Grazie!
Guarda che in modo chiaro ti e' stato detto da Fabio e poi da me. Anche se il riferimento era allo script di boomboom.

Fabio suggeriva a boomboom (indirettamente a te) un timestamp unix invece di NOW(), invece io ho aggiunto la possibilita' di fare tutto nella query utilizzando solo le funzioni mysql.

Erano i racconti della serie " a buon intenditor poche parole"...

Fabio
Questo invece secondo me va convertito con UNIX_TIMESTAMP

WHERE (ultimo_accesso+$set_timeout) > NOW()");
Significa:
codice:
WHERE (ultimo_accesso+$set_timeout) > UNIX_TIMESTAMP(NOW())");
La mia osservazione:
codice:
Oppure se ultimo_accesso e' un campo datetime: 

WHERE (ultimo_accesso + interval $set_timeout minute) < NOW()");
Ora l'unica controversia sarebbe l'uso di "> maggiore" oppure "< minore".

Se vuoi estrarre tutti i record "scaduti" allora il confronto e': dove l'ultimo_accesso + il timeout e' minore di questo momento.

Se vuoi estrarre i record ancora validi ovviamente l'opposto.

Altra cosa degna di nota: Se un utente si collega senza concludere l'iter previsto, ti rimangono "orfani" tutti i record scaduti (timeout) o irraggiungibili per mancanza di session_id valido. Di qui la proposta di boomboom di cancellare non solo lo specifico session_id scaduto, ma bensi' "tutti" i session_id scaduti.

Chiedi pure se non ti e' chiaro il discorso.