Utente: Password: Ricordami
Non sei ancora registrato? Puoi farlo adesso!. Come utente registrato avrai diversi vantaggi come la gestione dei temi grafici, la possibilità di inviare notizie e commenti.
Le ultime dal forum Le ultime dal forum  CercaCerca  Options forumOptions forum  Gruppi utentiGruppi utenti 
Nuova discussione
Precedente Versione stampabile Messaggi privati Successivo
Autore Messaggio
RymoahOffline
Nuovo entrato

Nuovo entrato
Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo

 Profilo  
Messaggio   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 Torna in cima
MAXdev Info

MAXdev vi informa





   
Messaggio Inviato: 03 Set 2010 - 15:37

Informationi MAXdev :)
Torna in cima
cradleOffline
Moderatore

Moderatore
Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese

 Profilo  
Messaggio   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 Torna in cima
RymoahOffline
Nuovo entrato

Nuovo entrato
Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo

 Profilo  
Messaggio   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 Torna in cima
RymoahOffline
Nuovo entrato

Nuovo entrato
Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo

 Profilo  
Messaggio   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 Torna in cima
cradleOffline
Moderatore

Moderatore
Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese

 Profilo  
Messaggio   Inviato: 04 Set 2010 - 09:30

Utilizza il bigdump che trovi nei download--- leggi il manualetto interno al file
Clicca qui
Rispondi citando Torna in cima
RymoahOffline
Nuovo entrato

Nuovo entrato
Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo

 Profilo  
Messaggio   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 Torna in cima
cradleOffline
Moderatore

Moderatore
Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese

 Profilo  
Messaggio   Inviato: 05 Set 2010 - 02:38

Umh, puoi provare ma fai delle copie di backup prima--- file e database
Rispondi citando Torna in cima
RymoahOffline
Nuovo entrato

Nuovo entrato
Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo

 Profilo  
Messaggio   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 Torna in cima
cradleOffline
Moderatore

Moderatore
Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese

 Profilo  
Messaggio   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 Torna in cima
cradleOffline
Moderatore

Moderatore
Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese

 Profilo  
Messaggio   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 Torna in cima
RymoahOffline
Nuovo entrato

Nuovo entrato
Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo

 Profilo  
Messaggio   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 Torna in cima
RymoahOffline
Nuovo entrato

Nuovo entrato
Registrato: 03 Lug 2008
Messaggi: 9
Località: Bergamo

 Profilo  
Messaggio   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 Torna in cima
cradleOffline
Moderatore

Moderatore
Registrato: 26 Apr 2004
Messaggi: 858
Località: Piedimonte Matese

 Profilo  
Messaggio   Inviato: 06 Set 2010 - 14:14

Si, infatti sulla Maxdev1084 queste righe erano gia state commentate ;)
Rispondi citando Torna in cima