Joomla.it Forum
Non solo Joomla... => Sviluppo => : billa18 28 Jun 2011, 11:13:25
-
Ciao a tutti
sto facendo un "esperimento" ma ho bisogno del vostro aiuto.
Ho inserito manualmente, nella tabella "jos_users" un nuovo utente, solo che questo utente non viene "riconosciuto" da Joomla come tale, e non mi viene riproposto nella lista utenti all'interno del programma. E' come se questo utente non esistesse (ma nel database c'è).
I campi che non ho compilato (perchè non capisco a cosa servano) sono :
GID e Params
Gli altri ci sono tutti (la password inserita non è però criptata, ma in chiaro).
Mi sapete suggerire il perchè Joomla non carichi tra gli utenti anche questo nuovo?
Aspetto suggerimenti.
Grazie mille.
-
ciao,
gid è il group id (18 per i registered).
params definisce i parametri per l'utente (lingua da usare, editor preferito ecc ecc).
Il problema per cui non ti visualizza l'utente probabilmente è per la password, ho appena fatto una prova e me lo visualizza senza problemi.
Joomla utilizza md5(password,salt) quindi dovrai fare una codifica della password in quel modo.
-
Grazie Murpz...ma come si fa a codificare la password con questo sistema?
-
Utilizzando le funzioni di joomla:
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($pwd, $salt);
$pwd_def = $crypt.':'.$salt;
-
e per farlo manualmente? che dovrei fare?
-
Lo sto facendo in un sito web,
- genero una password di 10 caratteri con la funzione random di php
- genero la password:salt di joomla con:
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($pwd, $salt);
$pwd_def = $crypt.':'.$salt;
--------- dove la password che ho generato è la variabile $pwd -----------
creo l'utente con una query sql:
$query_utente_joomla = "INSERT INTO jos_users VALUES ('$id', '$user', '$username', '$email', '$pwd_def', 'Registered', '0', '0', '18', '$data', '', '', '')";
$db->setQuery($query_utente_joomla);
$db->query();
tutte le variabili come $id, $user ecc ecc le puoi mettere a caso...
-
Si ok ma non è quello a cui miravo io...mi spiego meglio (forse mi puoi aiutare con piu' semplicità) :
i campi della tabella jos_users verranno riempiti da un modulo di Chronoform, quindi non ho la possibilita' di inserire i codici che mi hai suggerito...c'è modo che chronoform, automaticamente, cripti la password così come richiesto da Joomla?
-
Mi spiace ma non ho mai usato chronoform quindi non so se c'è un modo automatico e più semplice. Penso ci sia sicuramente un modo di interfacciarlo alla registrazione utenti di joomla, in ogni caso ti potrei suggerire di intercettare il click sul form, prendere i valori che ti servono e creare la query sql per aggiungere l'utente.
La serie di codici che avevo scritto fa proprio quello per il mio sito, un form da cui prendo le variabili inserite dall'utente e usate per inserire manualmente un nuovo user.
Per il resto non conosco chronoform quindi non saprei aiutarti...
-
grazie mille murphz...se non riusciro' a trovare una strada piu' semplice seguiro' il tuo suggerimento.
Grazie davvero.
-
Ho scoperto una cosa strana : se provo a compilare il form di registrazione di Joomla usando lo username e la password che ho inserito manualmente nel database, mi dice che questo nome e password sono gia' in uso, quindi di riprovare.
Ma se con gli stessi provo a fare un login mi dice che l'account non esiste....come puo' essere?
-
Sono riuscita a risolvere "empiricamente" il mio problema :)
Grazie a tutti
-
Sono riuscita a risolvere "empiricamente" il mio problema :)
Grazie a tutti
in che modo se posso chiedere? ;)
-
Certo Murphz. Il mio problema consisteva nel fatto di avere altri campi di input in fase di registrazione degli utenti...ed avevo creato con Chronoform 2 moduli diversi : il primo andava a scrivere nella tabella jos_users i campi predefiniti della registrazione di Joomla, il secondo andava a scrivere in un'altra tabella del DB....solo che è sorto il problema delle PW (come sai)...Quindi ho "manipolato" il com_users, facendo sì che, nella fase di "fine registrazione" del modulo di Joomla, l'utente andasse a finire in una pagina ben precisa, dove ho posizionato il secondo modulo di Chronoform...In questa pagina, pero', non ho messo alcun menu'...per cui l'utente, per andare avanti, è costretto a compilare i campi del secondo modulo....solo alla fine di questo secondo invio arriva in un'altra pagina che, pero', ha tutti i menu' visibili...Certo non è detto che tutti compileranno il form (basterebbe aspettare l'email di conferma del server per l'attivazione, rientrare ex-novo nel sito e loggarsi)....ma, avendo io scritto nella pagina "completa la tua registrazione" sono convinta che il 99% delle persone lo faranno...appena mettero' questa bozza online ti manderò il link così potrai verificare cosa ho appena scritto.
-
Certo Murphz. Il mio problema consisteva nel fatto di avere altri campi di input in fase di registrazione degli utenti...ed avevo creato con Chronoform 2 moduli diversi : il primo andava a scrivere nella tabella jos_users i campi predefiniti della registrazione di Joomla, il secondo andava a scrivere in un'altra tabella del DB....solo che è sorto il problema delle PW (come sai)...Quindi ho "manipolato" il com_users, facendo sì che, nella fase di "fine registrazione" del modulo di Joomla, l'utente andasse a finire in una pagina ben precisa, dove ho posizionato il secondo modulo di Chronoform...In questa pagina, pero', non ho messo alcun menu'...per cui l'utente, per andare avanti, è costretto a compilare i campi del secondo modulo....solo alla fine di questo secondo invio arriva in un'altra pagina che, pero', ha tutti i menu' visibili...Certo non è detto che tutti compileranno il form (basterebbe aspettare l'email di conferma del server per l'attivazione, rientrare ex-novo nel sito e loggarsi)....ma, avendo io scritto nella pagina "completa la tua registrazione" sono convinta che il 99% delle persone lo faranno...appena mettero' questa bozza online ti manderò il link così potrai verificare cosa ho appena scritto.
Bhè è una soluzione accettabile per il momento direi, spero che le tue statistiche siano veritiere ;D ok, così vedo anche come lavora sto chronoform che non l'ho mai utilizzato...grazie
-
Chronoform lavora benissimo :)
Vedrai che non te ne pentirai cominciando ad usarlo....se hai bisogno di qualche suggerimento fammelo sapere :)
ciao e a presto.