Ciao optime, grazie !
ti spiego: precedentemente appena facevo l'accesso salvavo sid uid e expires in una tabella session, e ad ogni refresh aggiornavo la tabella cancellando i vecchi row dell'utente (expires < Now() And uid = id_user). In questo modo, con le opportune verifiche, permettevo un singolo accesso ad ogni utente per una sola macchina. Se si esegue l'accesso altrove, si autoslogga il vecchio. E così funziona perfettamente, oltretutto nella tabella session ho tutti gli ultimi accessi (posso fare la statistica delle persone online, ultimo accesso, ecc).

Ora, mi chiedevo: come strutturo invece le tabelle se volessi permettere più accessi attivi ad un singolo utente su macchine differenti? Magari salvando l'user agent di ogni sessione per capire da quale macchina è stato effettuato e la possibilità da un pannello di controllo di sloggarle "a distanza".
Avevo pensato di creare una tabella cookie dove mettere una stringa alfanumerica (il contenuto del cookie salvato) ed il suo ID, al fine di non salvare dati sensibili direttamente sulla macchina. Così un user può avere più cookie. Ora, se aggiornassi le pagine, modifico quel row. Se sloggo, posso cancellarlo. Ma se il cookie mi scade, sono costretto a rifare l'accesso, creare un nuovo row ed il vecchio rimarrebbe lì per sempre, 'intasandomi' la tabella. Potrei fare anche uno script che pulisce tutti quelli scaduti ma mi sembra poco chiaro. Cosa suggerisci?