| Autore |
Messaggio |
Rymoah Nuovo entrato

Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo
Profilo
|
  Inviato:
03 Set 2010 - 15:37 |
|
| Oggetto: [MDUsers] Aggiornamento profilo utenti dalla 1.076 |
Ciao a tutti, mi spiace aprire un altro topic sul modulo di MDUsers di cui si è già discusso tanto nel forum, ma il problema che ho riscontrato mi sembra diverso da tutti quelli riportati nei thread passati.
Innanzitutto: Il sito che amministro è http://www.duneitalia.com/mdpro, con hosting Linux su Aruba. A questo link sono disponibili le informazioni date da phpinfo: http://www.duneitalia.com/info.php
Il problema è il seguente: da quando ho aggiornato alla versione 1.083 (partendo dalla 1.082, che a sua volta è stata aggiornata dalla 1.076), i vecchi utenti provenienti dalla 1.076 non riescono più a modificare il loro profilo.
Inizialmente credevo che il problema riguardasse solo il caricamento degli avatar (problema che è già stato ampiamente trattato in questo forum, per esempio qui), ma dopo aver provato a controllare i path di upload delle immagini e i permessi, mi sono accorto che il problema coinvolgeva qualsiasi campo del profilo utente.
In pratica, ogni volta che si prova a modificare qualche informazione e si clicca sul pulsante Salva, sembra che il profilo sia stato effettivamente modificato, ma in realtà sul database non è cambiato nulla; infatti, basta fare un refresh della pagina profilo che tornano le informazioni e l'avatar di prima.
La cosa strana è che, invece, con i nuovi utenti registrati dopo l'aggiornamento alla versione 1.083 questo problema non si presenta, e possono modificare il loro profilo e caricare i loro avatar senza problemi.
E' come se, con gli utenti provenienti dalla 1.076, la funzione MDUsers_user_updateuser() nel file pnuser.php non venisse invocata, o comunque come se non andasse effettivamente ad aggiornare il database. La cosa che ho notato, in effetti, è che quando si modifica il profilo con utenti registrati dopo l'aggiornamento viene visualizzata la scritta in rosso "Profilo aggiornato", mentre invece con quelli provenienti dall 1.076 non compare quella scritta.
Sul log degli errori di Apache, inoltre, non viene visualizzato alcun tipo di errore che possa essere ricollegato a questo problema...
Credo di aver dato tutte le informazioni di cui ero a disposizione... spero risulti chiaro. Nel frattempo, ringrazio anticipatamente. :)
Rymoah |
_________________ http://www.duneitalia.com/mdpro |
|
Rispondi citando |
 |
|
MAXdev Info MAXdev vi informa
|
Inviato:
03 Set 2010 - 15:37 |
|
|
|
|
 |
cradle Moderatore


Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese
Profilo
|
  Inviato:
03 Set 2010 - 16:58 |
|
|
Il passaggio dalla <a href="http://www.maxdevitalia.com/CMpro-v-p-209.html" title="Vecchie versioni">1.076</a> alle versioni lite di Maxdev e' leggermente ( per non dire troppo) traumatico. La riuscita dipende da molteplici fattori. In ogni caso dalla 1.076 se ne esce con qualche smanettata. Prova a confrontare, nel database, le tabelle di un utente che proviene dalla 1.076 con un nuovo registrato. Fai un backup delle tabelle interessare e lavora in locale.. segnala eventuali differenze .
ciao |
|
|
Rispondi citando |
 |
Rymoah Nuovo entrato

Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo
Profilo
|
  Inviato:
04 Set 2010 - 07:51 |
|
|
| cradle ha scritto: |
Il passaggio dalla 1.076 alle versioni lite di Maxdev e' leggermente ( per non dire troppo) traumatico. La riuscita dipende da molteplici fattori. In ogni caso dalla 1.076 se ne esce con qualche smanettata. Prova a confrontare, nel database, le tabelle di un utente che proviene dalla 1.076 con un nuovo registrato. Fai un backup delle tabelle interessare e lavora in locale.. segnala eventuali differenze .
ciao |
Grazie del consiglio, effettivamente l'aggiornamento dalla 1.076 è stato particolarmente laborioso: mentre diversi problemi sono riuscito a risolverli guardando qui nel forum, altri (tra cui questo di MDUsers) rimangono.
A quanto posso vedere sul database, confrontando un utente vecchio con uno nuovo nella tabella md_users non noto nessuna discrepanza particolare. Nei prossimi giorni cercherò di fare degli esperimenti in locale per vedere se cambia qualcosa.
Per il momento, l'unica cosa che penso di essere riuscito a concludere è che la funzione MDUsers_user_updateuser() viene invocata anche nel caso degli utenti provenienti dalla 1.076, perchè ho provato a commentare l'intera funzione nel codice di pnuser.php e il risultato è che, sia con utenti vecchi che con utenti nuovi, quando si prova ad aggiornare il profilo si viene reindirizzati a questa pagina:
index.php?module=Errore&op=noexist&modname=MDUsers&modfile=updateuser
Vorrei provare ad inserire nel codice di MDUsers_user_updateuser() dei messaggi di controllo per capire dove si inceppa, ma purtroppo non sono molto pratico di PHP... :(
Per il momento, vi ringrazio ^___^
Rymoah |
_________________ http://www.duneitalia.com/mdpro |
|
Rispondi citando |
 |
Rymoah Nuovo entrato

Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo
Profilo
|
  Inviato:
04 Set 2010 - 09:27 |
|
|
Credo di aver capito cosa sia successo... penso si tratti di un problema di codifica dei caratteri. Quando ho aggiornato alla 1.083, ho ovviamente eseguito lo script per convertire il charset del database in UTF-8: ho notato però che alcuni caratteri sono rimasti alla vecchia codifica.
Nel caso del profilo utente, mi sono accorto che il problema non si presenta a tutti gli utenti provenienti dalla 1.076: in realtà si presenta solo a quelli che nell'userid hanno caratteri "strani", tipo underscore, trattini e lettere accentate. Provando a cambiare i nomi utenti togliendo questi caratteri, il problema scompare.
Adesso è da vedere se rieseguendo una conversione di charset sulla tabella md_users riesco a risolvere il problema... oppure se devo per forza modificare a mano tutti quegli user id "scomodi"
Rymoah |
_________________ http://www.duneitalia.com/mdpro |
|
Rispondi citando |
 |
cradle Moderatore


Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese
Profilo
|
  Inviato:
04 Set 2010 - 09:30 |
|
|
Utilizza il bigdump che trovi nei download--- leggi il manualetto interno al file
Clicca qui |
|
|
Rispondi citando |
 |
Rymoah Nuovo entrato

Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo
Profilo
|
  Inviato:
04 Set 2010 - 10:13 |
|
|
| cradle ha scritto: |
Utilizza il bigdump che trovi nei download--- leggi il manualetto interno al file
Clicca qui |
Ti ringrazio, però sia nel manualetto all'interno del file sia in questa pagina viene raccomandato di utilizzare il bigdump prima di aver effettuato l'aggiornamento... posso usarlo anche se ho già aggiornato alla 1.083?
Rymoah |
_________________ http://www.duneitalia.com/mdpro |
|
Rispondi citando |
 |
cradle Moderatore


Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese
Profilo
|
  Inviato:
05 Set 2010 - 02:38 |
|
|
Umh, puoi provare ma fai delle copie di backup prima--- file e database |
|
|
Rispondi citando |
 |
Rymoah Nuovo entrato

Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo
Profilo
|
  Inviato:
06 Set 2010 - 05:03 |
|
|
Ok, intanto sto facendo un backup di database e file su ftp prima di usare il bigdump. Nel frattempo, vorrei chiedere una cosa. Dato che sembra che l'unico campo a dare noie sia proprio quello del nome utente (ho provato ad inserire negli altri campi dei caratteri tipo underscore, ecc. ed accetta senza problemi), c'è un modo per togliere la possibilità agli utenti di modificarlo nel loro profilo? Se non sbaglio, nelle versioni precedenti di Mdpro non c'era questa possibilità... e nel mio caso tornerebbe comodo anche per un altro motivo, visto che ho installato il modulo pncUserPoints per calcolare i punteggi degli utenti; modificare lo username comporta infatti la perdita di tutti i punteggi (bisognerebbe andare a modificare il nome utente anche nelle altre tabelle del database, tipo weblinks, articoli, ecc.).
Grazie ancora
Rymoah |
_________________ http://www.duneitalia.com/mdpro |
|
Rispondi citando |
 |
cradle Moderatore


Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese
Profilo
|
  Inviato:
06 Set 2010 - 07:16 |
|
|
Se non erro non e' possibile modificare il proprio nick, almeno di non essere un admin, con Mdpro dalla 1.080 in poi..provare per credere.
in ogni caso e' stata aggiunta la funzione pending che trovi tra le opzioni di mdusers, praticamente ti permette di controllare i cambiamenti dei campi nei profili utenti in modo che se decidi che un campo, prima di essere modificato, necessiti di amministrazione, l'utente che va a modificare quel campo dovrà attendere che l'admin approvi la modifica.
Vai in mdusers - campi profilo e metti il segno di spunta sotto in attesa sui campi che vuoi controllare. Cosi facendo nei profili utente comparirà la dicitura cambiamenti in attesa sotto il campo che hai deciso di controllare.
Spero di essere stato chiaro :) |
|
|
Rispondi citando |
 |
cradle Moderatore


Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese
Profilo
|
  Inviato:
06 Set 2010 - 07:36 |
|
|
Ah dimenticavo che oltre al segno di spunta devi anche accedere, sempre in mdusers alla scheda opzioni e attivare Abilita - cambiamenti in attesa - e le varie opzioni :) |
|
|
Rispondi citando |
 |
Rymoah Nuovo entrato

Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo
Profilo
|
  Inviato:
06 Set 2010 - 08:14 |
|
|
Grazie, sei gentilissimo :) Quanto alla modifica del nickname da parte degli utenti normali hai ragione, ho sbagliato io (il campo compare ma non è modificabile). Ho notato che sono stati inseriti i cambiamenti controllati e mi sembrano un'ottima novità, che userò per altri campi personalizzati del profilo.
Riguardo il problema principale (e cioè che utenti con nickname contenenti caratteri "strani" non riescono ad aggiornare il profilo), ho capito di che cosa si tratta, e non ha a che vedere con il cambio della codifica ad utf8. In pratica, il campo uname viene sempre convalidato per essere alfanumerico, e non importa quale sia la configurazione settata nell'amministrazione dei campi profilo (io per il nome utente ce l'ho settata a "Convalida come...", denotata nella tabella md_user_property dal valore binario [BLOB 110B]).
Spulciando nel file pnuser.php ho infatti trovato questo codice, alle linee 1109-1110 e 2001-2002:
| Codice:
|
|
$to_be_validated[] = array('field' => "uprop_$prop_id", 'linked' => 'uname', 'required' => 1, 'label' => $trans, 'validate' => 'isAlphanumeric','params' =>array($fields_array["uprop_$prop_id"]));
|
che è all'interno delle funzioni MDUsers_user_updateuser() e MDUsers_users_regfinish().
Secondo voi, commentando le linee in questione, il problema potrebbe risolversi?
Rymoah |
_________________ http://www.duneitalia.com/mdpro |
|
Rispondi citando |
 |
Rymoah Nuovo entrato

Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo
Profilo
|
  Inviato:
06 Set 2010 - 12:19 |
|
|
Ho provato e... sembra funzionare :) Commentando quelle due righe di codice si riesce a far aggiornare il profilo utente e a registrare nuovi utenti anche con nickname contenenti caratteri diversi da numeri e lettere.
In ogni caso, grazie per il supporto. :)
Rymoah |
_________________ http://www.duneitalia.com/mdpro |
|
Rispondi citando |
 |
cradle Moderatore


Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese
Profilo
|
  Inviato:
06 Set 2010 - 14:14 |
|
|
Si, infatti sulla Maxdev1084 queste righe erano gia state commentate ;) |
|
|
Rispondi citando |
 |