Back to top

Autore Topic: creazione utente  (Letto 947 volte)

Offline Zarkor

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
creazione utente
« il: 28 Mag 2010, 17:39:23 »
Salve a tutti,
sto creando un componente per personalizzare la registrazione al mio sito joomla.

Ho un errore in particolare che non riesco ad interpretare...
Quadro della situazione: sto cercando di salvare un nuovo utente nella tabella #__user con il seguente codice php richiamato dal file admin/models/user.php -> class ImmobiliaModelUser extends JModel -> function store() :
[praticamente il metodo che viene richiamato al momento della pressione del tasto "salva" da backend]
Codice: [Seleziona]
// get the ACL
$acl =& JFactory::getACL();

/* get the com_user params */

jimport('joomla.application.component.helper'); // include libraries/application/component/helper.php
$usersParams = &JComponentHelper::getParams( 'com_users' ); // load the Params

// "generate" a new JUser Object
$user =& JFactory::getUser(0); // it's important to set the "0" otherwise your admin user information will be loaded
$data = array(); // array for all user settings

// get the default usertype
$usertype = $usersParams->get( 'new_usertype' );
if (!$usertype) {
    $usertype = 'Publisher';
}

// set up the "main" user information
$data['name'] = $_POST['name'];
$data['username'] = $_POST['username'];
$data['email'] = $_POST['email'];
$data['password'] = $_POST['password'];
$data['password2'] = $_POST['password2'];
$data['password_clear'] = $_POST['password'];
$data['usertype'] = $_POST['usertype'];
$data['gid'] = $_POST['gid'];
$data['sendEmail'] = 1; // should the user receive system mails?

/* Now we can decide, if the user will need an activation */
$useractivation = 1;
if ($useractivation == 1) { // yeah we want an activation
    jimport('joomla.user.helper'); // include libraries/user/helper.php
    $data['block'] = 1; // block the User
    $data['params'] = 0;
    $data['activation'] =JUtility::getHash( JUserHelper::genRandomPassword()); // set activation hash (don't forget to send an activation email)
}
else { // no we need no activation
    $data['block'] = 0; // don't block the user
}

$result = $user->bind($data);// now bind the data to the JUser Object, if it not works....
if(!$result){
    JError::raiseWarning('', JText::_( $user->getError())); // ...raise an Warning
    return false; // if you're in a method/function return false
}

if (!$user->save()) { // if the user is NOT saved...
    JError::raiseWarning('', JText::_( $user->getError())); // ...raise an Warning
    return false; // if you're in a method/function return false
}

ora da cosa ho notato io la variabile password2 crea problemi, nel senso:
se la passo tramite l'array $data (come da sodice sopra) il bind viene eseguito ma lo script muore al momento del "$user->save()".

se non passo alcuna password il bind ne crea una random e la assegna anche a "password2". Questa volta lo script funziona, nel senso che ho un output e joomla mi gestisce un errore in cui scrive "PASSWORD DO NOT MATCH"...

sono un po' in crisi a riguardo... nessuno è in grado di aiutarmi?

Offline Zarkor

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:creazione utente
« Risposta #1 il: 03 Giu 2010, 10:19:21 »
il problema principale era il fattoi di aver chiamato i file con nomi troppo comuni: "user.php".
sicuramente andava in conflitto con qualche redirect e mi dava errori assurdi :S

adesso il problema è un altro... in caso apro un altro topic...

 



Web Design Bolzano Kreatif