Devo metter su una piccola community per una chat che frequento, e avevo intenzione di usare un solo login per tutti i servizi della community. Avendo idea di usare un forum phpBB è chiaro che l'unica possibilità è quella di sfruttare la sua tabella utenti per evitare la doppia registrazione sito/forum. HO alcuni dubbi che prescndono in parte dal phpBB e dovrebbero essere abbastanza generali.
La verifica del login è chiaramente banale.
La registrazione con una pagina personalizzata (non per forza quella del forum quindi), non dovrebbe essere un grosso problema: da una prima sbirciata al database del forum pare che oltre alla tabella user vengano coinvolte quella group (ogni utente appartiene ad uno seciale gruppo individuale) e quella user_groups che associa appunto gruppi e utenti.
Dovrebbe quindi bastare inserire un utente, un nuovo "gruppo individuale", e associare l'id del gruppo e l'id dell'utente. L'unica cosa che mi chiedo: se una delle insert seguenti la prima non va a buon fine, che succede? Come posso garantirmi la consistenza del database non essendoci le rollback in mysql?
Volendo raffinare la cosa mi sorgono dei dubbi per i quali vi chiedo solo conferme o smentite:
1) per quanto riguarda il login, volevo permettere il riconoscimento automatico degli utenti che hanno il cookie apposito. Non dovrebbe essere un problema trovare e copiare pari passo il codice del forum, e quindi riconoscere il cookie ed il login ovunque nel sito. E non è forse neanche un problema copiare anche il codice per settare il cookie dal sito e non dal forum. Giusto?
Il problema che mi pongo allora è quello della sessione. una volta riconociuto l'utente dal cookie mantengo la sua identità nella sessione. Non volendo però impelagarmi con le sessioni di phpBB [anche se sarebbe bello integrare a tal punto sito e forum] mi chiedevo se la cosa potesse funzionare. Intuitivamente penso di sì: si perde chiaramente l'informazione di sessione passando dal sito al forum, ma se l'utente ha usato l'autologin non si accorge di nulla. Se non l'ha settato invece dovrebbe non essere riconosciuto dal forum se ha fatto il login sul sito, e viceversa. Giusto? All'inizio farò così, poi vedrò se sarà il caso di usare direttamente le sessioni di phpBB.
2) Per quanto riguarda la registrazione ho un solo dubbio, a parte quello delle tabelle coinvolte: se aggiungo dei campi alla tabella utenti per immagazzinare altre informazioni, rischio di compromettere il funzionamento del forum?
Meglio semplicemente usare le join con l'id utente come chiave di altre tabelle? Però magari per aggiungere un semplice campo text mi sembra un po' eccessivo :\
Ma in ogni caso sarebbe comodo poter aggiungere direttamente nella tabella user del forum alcune informazioni aggiuntive: volendo avere dei profili utente + dettagliati rispetto a quelli del forum... senza dover avere alcune informazioni (ad esempio la provenienza) sulla tabella del forum, e altre su un'altra... che dite?
grazie