Back to top

Autore Topic: Inserimento utenti in jos_users senza passare da joomla  (Letto 2679 volte)

Offline Trigor

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
ciao a tutti :)

sto lavorando sull'inserimento di un gran numero di utenti e ho deciso di leggere un file excel dove questi utenti si trovano e di inserirli nel database joomla.

va tutto bene nella lettura del file, ma quando provo ad inserire nel database gli utenti, le password inserite non corrispondono.

questo è il codice che uso per la creazione delle password usando il crypt di joomla:

Codice: [Seleziona]
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($password, $salt);
$password = $crypt.':'.$salt;

dovrebbe in teoria essere corretto ma evidentemente mi è sfuggito qualcosa :)

ovviamente richiamo la classe e le password che ottengo sono nel format giusto, ad esempio
Citazione
8cee5f829444da8fb515cdb75c23c69a:qzOOVP8Ba0YZJjO1Y0p9SMNazkDvFzrb
ma quando faccio login con la password di partenza, non funziona :(

grazie dell'attenzione :)

Offline assicomputer

  • Appassionato
  • ***
  • Post: 304
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento utenti in jos_users senza passare da joomla
« Risposta #1 il: 17 Giu 2010, 14:50:07 »
Ma le password le hai criptate in md5?'

Offline Trigor

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:Inserimento utenti in jos_users senza passare da joomla
« Risposta #2 il: 17 Giu 2010, 14:52:49 »
no, il dato $password the do al metodo getCryptedPassword($password, $salt); è un plain text come scritto nell'api di joomla

quindi se la mia password è "pippo" passerò $password = "pippo"

questo perchè nell'api di joomla ho trovato

Citazione
getCryptedPassword  (line 106)

Formats a password using the current encryption.

    * return: The encrypted password.
    * access: public

string getCryptedPassword (string $plaintext, [string $salt = ''], [string $encryption = 'md5-hex'], [boolean $show_encrypt = false])

    * string $plaintext: The plaintext password to encrypt.
    * string $salt: The salt to use to encrypt the password. [] If not present, a new salt will be generated.
    * string $encryption: The kind of pasword encryption to use. Defaults to md5-hex.
    * boolean $show_encrypt: Some password systems prepend the kind of encryption to the crypted password ({SHA}, etc). Defaults to false.

non mi sembra che debba essere criptata prima con md5($password)... spero :)

mau_develop

  • Visitatore
Re:Inserimento utenti in jos_users senza passare da joomla
« Risposta #3 il: 17 Giu 2010, 16:05:14 »
no, non è così che si fa.

utenti e autorizzazioni sono definiti su più tabelle.

M.

Offline Trigor

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Re:Inserimento utenti in jos_users senza passare da joomla
« Risposta #4 il: 17 Giu 2010, 16:12:54 »
sì, ho notato e ora ho risolto.

non salvavo gli utenti sulle altre tabelle (3 totali, quelle 'aro').

per chi avesse il mio stesso problema questo è il codice dopo aver creato i dati necessari (visto che il "non è così che si fa" non è proprio utile per la soluzione...)

Codice: [Seleziona]
$query = "INSERT INTO #__users (id, name, username, email, password, usertype, block, sendEmail, gid, registerDate, lastvisitDate, activation, params) VALUES (NULL, '$username', '$email1', '$email', '$password', 'Registered', '0', '0', '18', CURDATE(), CURDATE(), '', '')";
$db->setQuery($query);
$result = $db->query();

$query2 = "INSERT INTO #__core_acl_aro (id, section_value, value, order_value, name, hidden) VALUES(NULL, 'users', '$id', '0', '$username', '0')";
$db->setQuery($query2);
$result2 = $db->query();

$query3 = "INSERT INTO #__core_acl_groups_aro_map (group_id, section_value, aro_id) VALUES('18', '', '$aro_id')";
$db->setQuery($query3);
$result3 = $db->query();
« Ultima modifica: 17 Giu 2010, 16:15:14 da Trigor »

 



Web Design Bolzano Kreatif