Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Feedbacks - Passaggio da utente a membro
Forum - Feedbacks - Passaggio da utente a membro

Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 16:10
Sabato, 04/07/2015
Salve, non so se quello che sto per dire corrisponda al vero, ma aprendo un topic mi sono imbattuto in un "errore" a cui ho provato a dare una spiegazione.
Il topic in questione è questo http://www.pierotofy.it/pages/extras/forum/2/1055716-perch ...
L'utente che ha creato il topic risulta essere inesistente, qualche post più sotto "torna a vivere", immagino che sia per il fatto che il topic è stato creato quando era un utente normale e i messaggi successivi siano stati scritti da membro. Ora, il passaggio a membro cancella effettivamente ogni riferimento all'utente nei suoi post? Se è cosi non sarebbe buona cosa modificare questo approccio. In questo modo tanti post appaiono come post senza padre.

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:36
Sabato, 04/07/2015
Emm, si, l'utente precedente viene eliminato (nel caso in cui l'username di membro viene scelto come lo stesso di un utente esistente).

Una buona soluzione sarebbe anche quella di cambiare il riferimento nei posts del forum del vecchio utente al nuovo utente.

E' da correggere.


Il mio blog: https://piero.dev
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 18:31
Domenica, 05/07/2015
Non ho idea di come siano gestiti gli utenti a livello tecnico, ma come mai non viene semplicemente mantenuto l'id tra utente e membro? Questi non sono condivisi tra utenti e membri?

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 2:17
Lunedì, 06/07/2015
:rofl:

E' sempre curioso far notare che pierotofy.it è stato uno dei primissimi progetti che ho costruito. Certe parti di codice semplicemente non sono state progettate bene (e alcune sono state progettate veramente male!). Nel corso degli anni molte parti sono state cambiate (più notoriamente il forum, che è stato riscritto quasi da zero), ma alcune sono rimaste. L'ammissione dei membri al sito è una delle parti più vecchie.

Da:
http://developer.pierotofy.it/index.php?title=Stranezze_e_ ...

Testo quotato


users e members, id e member_id
Ogni buon ingegnere del software avrebbe detto: creiamo una tabella utenti e una flag deciderà se quell'utente è membro oppure no. Le informazioni manteniamole nella stessa tabella per entrambe le categorie. Sarebbe stata una buona idea, in fondo. Purtroppo non è l'idea che è passata in mente quando la struttura del sito è stata progettata.
Users è la tabella effettiva di utenti e membri. Il campo permission decide a quale categoria ogni utente fa parte.
users.permission:
0 = Admin
1 = Founder Member
2 = Member
9 = Normal User
La tabella members si affianca a quella users in certe situazioni. La tabella members ad esempio contiene le informazioni del profilo, esperienze lavorative, medaglie, ecc. Ci sono due ridondanze nella tabella members. Qualcuno l'avrà notato, ma ad esempio se cliccate sul profilo di "Piero Tofy", verrete reinviati alla pagina dell'utente conosciuto nel forum come "pierotofy". Da quando il sistema di ammissione membri è diventato semi-automatico, questa ridondanza virtualmente non c'è più (users.user == members.nickname), ma c'è ancora a livello di programmazione. Oltre a questo, users.mail == members.mail.
Mmm... e il campo userID per la join fra le due tabelle dove sta? Non c'è. La join tra le due tabelle viene fatta tramite il campo mail (oddio!). Ad oggi un campo userID per linkare le due tabelle è ancora da creare.
Questa ambiguità fra le due tabelle non è stata molto utile. Al contrario noterete che quando bisogna far riferimento ad un utente (ad esempio, chi ha creato il progetto X? Chi ha caricato il programma Z? Chi ha postato il messaggio Y nel forum?) c'è un brutto mix. Nello specifico ci sono tre vie per referenziare il proprietario di un oggetto (progetto, programma, articolo, ecc.).
Numero 1 (più vecchio, presente nel sito e assolutamente da evitare!): usare members.nickname. Esempi sono la tabella articoli (tutorials) e dei programmi (programs). Nei campi tutorials.members_nickname e programs.programmer viene indicato a lettere (ad esempio "Piero Tofy") il proprietario di un articolo.
Numero 2 (meno vecchio, presente nel sito e da evitare!): usare members.id. Esempio sono i progetti (projects) e advguides, advchapters (le guide del sito come quella al Visual Basic .NET di Totem). In questo caso members.id è stato utilizzato.
Numero 3 (recente, da usare per il futuro!): usare users.id. Questo è un campo ID univoco che comprende sia members che normal users, ed è quello che è da usare (messaggi privati, forum, muro e tante altre parti utilizzano questo sistema).
Come si fa quindi a capire cosa sta succedendo? Come faccio a referenziare un utente e sapere come fare le join senza rompere la compatibilità con vecchio codice? Per far fronte a questo, tutte le nuovi parti di codice devono utilizzare l'oggetto $currentUser, che viene istanziato ad ogni richiesta e contiene metodi e membri utili per far riferimento ad un utente. Per maggiori informazioni leggere /etc/lib/libcurrentuser.php.



Ultima modifica effettuata da pierotofy il 06/07/2015 alle 2:17


Il mio blog: https://piero.dev
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 4:13
Lunedì, 06/07/2015
Oddio XD
Che.. che... che.. pastrugno :rofl:

ahahahahah il fatto che questo problema sia già stato segnalato e discusso all'interno del gruppo di sviluppo del sito assicura a tutti che la squadra ci sta già lavorando su, vero?! :rofl:

La sensazione che si prova quando si guarda un vecchio progetto e si notano tutte le migliorie che si potrebbero apportare è sempre in bilico tra il "guarda quanto sono migliorato" e "ma che orrori scrivevo tempo fa" :rofl:

Ultima modifica effettuata da Roby94 il 06/07/2015 alle 4:15
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 1:33
Martedì, 07/07/2015
queste epiche reliquie del 2003 sono eccezionali, piero le ha scritte quando aveva 14 anni e stackoverflow non esisteva, google muoveva solo i primi passi XD

PM Quote