Page 1 of 2

[RISOLTO] Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 4:54 pm
by protempore
ciao,
avrei la necessità di stabilire 2 sistemi di registrazione utente...

cerco di spiegarmi

adesso l'utente si registra con selfRegistration e viene associato ad un gruppo di default... in più è richiesta la verifica dell'indirizzo email attraverso la conferma dell'account...

dovrei aggiungere, però, un altro sistema di registrazione che si appoggi sempre a FEUsers associando questo nuovo tipo di utente ad un altro gruppo, con una richiesta più scarna di dati per la registrazione (nome, cognome, email, nazione e poco più)... inoltre non vorrei che per questo gruppo fosse richiesta la conferma dell'account con email...

come si fa... se è possibile?

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 5:00 pm
by alby
protempore wrote: adesso l'utente si registra con selfRegistration e viene associato ad un gruppo di default... in più è richiesta la verifica dell'indirizzo email attraverso la conferma dell'account...

dovrei aggiungere, però, un altro sistema di registrazione che si appoggi sempre a FEUsers associando questo nuovo tipo di utente ad un altro gruppo, con una richiesta più scarna di dati per la registrazione (nome, cognome, email, nazione e poco più)...
Hai provato con
mode="signup" group="group1" in una pagina
mode="signup" group="group2" in un'altra pagina

protempore wrote: inoltre non vorrei che per questo gruppo fosse richiesta la conferma dell'account con email...
hummm, questo non penso possibile perchè credo che sia globale

Alby

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 5:10 pm
by protempore
alby wrote:
protempore wrote: inoltre non vorrei che per questo gruppo fosse richiesta la conferma dell'account con email...
hummm, questo non penso possibile perchè credo che sia globale

Alby
acc... è quello che temevo...

non c'è un modo di proporre un form senza passare da selfRegistration?

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 5:19 pm
by alby
protempore wrote: non c'è un modo di proporre un form senza passare da selfRegistration?
Mah, se è solo per registrazione si potrebbe fare con:
- un form ed un udt (o un php esterno) che inserisce i dati nella tabella FEU e poi redirige ancora a cms
- formbuilder con un udt associato che inserisce i dati nella tabella FEU

Alby

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 5:25 pm
by protempore
alby wrote: Mah, se è solo per registrazione si potrebbe fare con:
- un form ed un udt (o un php esterno) che inserisce i dati nella tabella FEU e poi redirige ancora a cms
si, questo potrei anche riuscire a farlo... ma mi sfugge come si registra l'eventuale password... non saprei come viene criptata

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 5:34 pm
by alby
protempore wrote:
alby wrote: Mah, se è solo per registrazione si potrebbe fare con:
- un form ed un udt (o un php esterno) che inserisce i dati nella tabella FEU e poi redirige ancora a cms
si, questo potrei anche riuscire a farlo... ma mi sfugge come si registra l'eventuale password... non saprei come viene criptata
non ho guardato nel codice ma
99,9999% con md5

Alby

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 5:51 pm
by protempore
alby wrote: non ho guardato nel codice ma
99,9999% con md5

Alby
quindi solo l'md5 dell'input definito come password?

md5($password);

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 5:53 pm
by alby
protempore wrote:
alby wrote: non ho guardato nel codice ma
99,9999% con md5

Alby
quindi solo l'md5 dell'input definito come password?

md5($password);
secondo me sì.
puoi fare un controllo con un utente in cui conosci la password di FEU

Alby

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 5:55 pm
by protempore
ho verificato... si... è proprio così

grazie

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 7:27 pm
by protempore
ho bisogno ancora un aiuto per inserire nell'UDT il riferimento Captcha...

nell'help del modulo leggo questo...

Code: Select all

Per mostrare un'immagine captcha:

// create a un riferimento all'oggeto del modulo Captcha
$captcha = &$this->getModuleInstance('Captcha'); 
// per mostrare l'immagine captcha
echo $captcha->getCaptcha();

Per verificare l'input dell'utente:
// create a un riferimento all'oggeto del modulo Captcha
$captcha = &$this->getModuleInstance('Captcha');
// verificate l'input dell'utente (il metodo checkCaptcha restituisce TRUE se $input è correto, FALSE se $input è sbagliato)
$validated = $captcha->checkCaptcha($input);
copio pari pari questo codice nell'UDT?

Re: Registrazione utente con FEUsers

Posted: Wed Mar 25, 2009 7:59 pm
by alby
protempore wrote: ho bisogno ancora un aiuto per inserire nell'UDT il riferimento Captcha...

nell'help del modulo leggo questo...

Code: Select all

Per mostrare un'immagine captcha:

// create a un riferimento all'oggeto del modulo Captcha
$captcha = &$this->getModuleInstance('Captcha'); 
// per mostrare l'immagine captcha
echo $captcha->getCaptcha();

Per verificare l'input dell'utente:
// create a un riferimento all'oggeto del modulo Captcha
$captcha = &$this->getModuleInstance('Captcha');
// verificate l'input dell'utente (il metodo checkCaptcha restituisce TRUE se $input è correto, FALSE se $input è sbagliato)
$validated = $captcha->checkCaptcha($input);
copio pari pari questo codice nell'UDT?
Devo ancora inserirlo in FMS ma mi pare di capire che la prima parte è nella parte dove viene visualizzato il form e la seconda dove viene processato il form

Alby

Re: Registrazione utente con FEUsers

Posted: Thu Mar 26, 2009 8:26 am
by protempore
il guaio è che quel codice credo sia fatto per essere inserito in un modulo... non in un UDT...

e lì mi fermo...

ho parzialmente risolto modificando il plugin "reCaptcha"... solo che sono piantato su una funzione che vorrei aggiungere per fargli controllare se l'email è già registrata nel DB...

ho scritto questo...

Code: Select all

function existemail($email) {
	global $gCms;
	$db =& $gCms->GetDb();
	$query = 'SELECT * FROM cms_module_feusers_properties WHERE data = '.$email.';';
	$dbresult =& $db->Execute($query);
	if ($dbresult) {
		return false;
		exit;
	}
	return true;
}
ma la condizione if ($dbresult) restituisce sempre "true"... evidentemente non è quello che devo scrivere... ma non so cosa...

Re: Registrazione utente con FEUsers

Posted: Thu Mar 26, 2009 9:09 am
by alby
protempore wrote: il guaio è che quel codice credo sia fatto per essere inserito in un modulo... non in un UDT...
be certo:
- sostituisci a $this $gCms (ed inserisci prima global $gCms;)
- cerca nei UDT come chiamare il modulo (es per CMSMailer)

protempore wrote: ma la condizione if ($dbresult) restituisce sempre "true"
certo, se no hai sbagliato la query ....
devi fare un fetch del dato:
if($dbresult && $row = $dbresult->FetchRow()) return $row;

ritorna un multidimensional array

Alby

Re: Registrazione utente con FEUsers

Posted: Thu Mar 26, 2009 9:40 am
by protempore
sono proprio negato...  ;D

ho modificato così...

Code: Select all

function existemail($email) {
	global $gCms;
	$db =& $gCms->GetDb();
	$query = 'SELECT * FROM cms_module_feusers_properties WHERE data = '.$email.';';
	$dbresult =& $db->Execute($query);
	if($dbresult && $row = $dbresult->FetchRow()) return $row;
	if($row>0) {
		return false;
		exit;
	}
	return true;
}
ma non sembra funzianare... quale madornalità ho scritto?

Re: Registrazione utente con FEUsers

Posted: Thu Mar 26, 2009 9:50 am
by alby
protempore wrote:

Code: Select all

function existemail($email) {
	global $gCms;
	$db =& $gCms->GetDb();
	$query = 'SELECT * FROM cms_module_feusers_properties WHERE data = '.$email.';';
	$dbresult =& $db->Execute($query);
	if($dbresult && $row = $dbresult->FetchRow()) return $row;
	if($row>0) {
		return false;
		exit;
	}
	return true;
}
1. non si mette mai ; nelle query da php
2. escape la tua variabile
3. hai fatto il check di $row come array o come booleano? il mio era un esempio ma se vuoi solo true/false allora forse è meglio:

Code: Select all

function existemail($email) {
	global $gCms;
	$db =& $gCms->GetDb();
	$query = 'SELECT * FROM cms_module_feusers_properties WHERE data = ?';
	$dbresult =& $db->Execute($query, array($email));
	if($dbresult && $dbresult->RecordCount() > 0)
	{
		return true;
	}
	return false;
}
Alby