Joomla.it Forum

Non solo Joomla... => Sviluppo => : floryn90 08 Jul 2013, 11:38:31

: Aggiornamento dati utente tramite JUser
: floryn90 08 Jul 2013, 11:38:31
Sto cercando di aggiornare i dati di un utente loggato (email e password) in un componente da me creato ma $user-save(true) mi restituisce un errore: JLIB_DATABASE_ERROR_EMAIL_INUSE. Questo mi fa pensare che non sto in aggiornamento ma in registrazione !? Qualche info utile ?


:
$user=& JFactory::getUser(); //catturo l'utente loggato in quel momento


//imposto la nuova email
$user->email=$email;


if(!$user->save(true)){
JError::raiseWarning('',JText::_('Email non salvata!'));
}else{
return true;
}


Questo errore JLIB_DATABASE_ERROR_EMAIL_INUSE significa che tale email esiste già! Ma adesso mi viene restituito un'altro errore :(
: Re:Aggiornamento dati utente tramite JUser
: mau_develop 08 Jul 2013, 17:33:22
visto che il componente lo hai fatto tu non usare save ma costruisci un metodo di update...
: Re:Aggiornamento dati utente tramite JUser
: majinb 31 Jul 2014, 19:20:51
ciao, ho lo stesso problema e volevo sapere se e come hai risolto. grazie
: Re:Aggiornamento dati utente tramite JUser
: mmleoni 01 Aug 2014, 07:44:12
ciao e benvenuto sul forum  :)

è inutile passare true al metodo save, molto meglio verificare che l'utente esista (id!=0).
per il resto non deve esistere un altro utente con la mail che si vuole registrare (verifica in check in JTableUser), cosa che succederebbe sempre se l'utente non fosse loggato, ovvero quando è connesso ma non loggato.

ps: in php 5.3+ gli oggetti sono sempre passati per riferimento, quindi non usate più =& in questi casi.

ciao,
marco