Page 1 of 1
[Risolto] Login automatico dopo la registrazione
Posted: Thu Mar 26, 2009 7:16 pm
by protempore
ciao,
solita domanda "strana"...
c'è un modo per "loggare" automaticamente il nuovo utente registrato?
in pratica ho realizzato un sistema di registrazione di un nuovo utente e vorrei che completata la registrazione si ritrovasse automaticamente "loggato"... senza passare dalla pagina di Login
...non ditemi che non si può fare che mi sparo... dopo tutto sto casino per arrivare fino a li...

Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 8:43 am
by alby
protempore wrote:
c'è un modo per "loggare" automaticamente il nuovo utente registrato?
in pratica ho realizzato un sistema di registrazione di un nuovo utente e vorrei che completata la registrazione si ritrovasse automaticamente "loggato"... senza passare dalla pagina di Login
Dovresti controllare cosa succede quando si è loggati
Come minimo una paio di variabili SESSION e (forse) qualcosa in una tabella
Alby
Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 8:59 am
by protempore
ovviamente a me interessa ottenere la variabile "logged_in = 1"
ma so mica come fare
Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 9:04 am
by alby
protempore wrote:
ovviamente a me interessa ottenere la variabile "logged_in = 1"
Perchè ottenere? Se tu che la devi settare automaticamente a lui es:
$_SESSION['logged_in'] = 1;
probabilmente ci sono anche dei cookie con le stesse variabili, bisogna fare un minimo di tracking
Alby
Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 9:07 am
by protempore
ah... semplicemente così?
e io che sono ammattito...
adesso provo...
grazie
Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 10:38 am
by protempore
alby wrote:...probabilmente ci sono anche dei cookie con le stesse variabili, bisogna fare un minimo di tracking
in effetti crea un cookie e aggiunge un record nella tabella "cms_module_feusers_history" con lo stesso valore del cookie...
adesso il problema è come recuperare il valore del cookie (visto che il cookie di sessione si crea automaticamente all'accesso al CMS) per inserirlo nella tabella...
Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 10:53 am
by protempore
ho trovato nel file "FrontEndUsers.api.php" questo pezzo di codice che forse può risolvermi il problema... con le dovute modifiche... tutto sta a capire quali...
Code: Select all
$ip = getenv("REMOTE_ADDR");
if( !$error )
{
$q = "INSERT INTO ".cms_db_prefix()."module_feusers_loggedin (sessionid,lastused,userid)
VALUES (?,?,?)";
/* we may need to start a session now */
if( session_id() == "" )
{
@session_start();
}
// log the user in
$dbresult = $db->Execute( $q, array( session_id(), time(), $uid ));
if( !$dbresult )
{
return array(FALSE, $db->ErrorMsg());
}
// set the cookie
$module =& $this->GetModule();
if( $module->GetPreference('cookie_keepalive',0) ) {
$expirytime = $module->GetPreference('user_session_expires');
@setcookie('feu_sessionid',session_id(),time()+$expirytime,"/");
@setcookie('feu_uid',$uid,time()+$expirytime,"/");
}
// and add history info
$q = "INSERT INTO ".cms_db_prefix()."module_feusers_history VALUES (?,?,?,?,?)";
$db->Execute( $q, array( $uid, session_id(), 'login',
trim($db->DBTimeStamp(time()),"'"),
$ip ));
return array($uid);
}
Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 3:02 pm
by alby
protempore wrote:
ho trovato nel file "FrontEndUsers.api.php" questo pezzo di codice che forse può risolvermi il problema... con le dovute modifiche... tutto sta a capire quali...
collegagli il db e cerca di richiamare l'uid dell'utente (se in qualche modo l'hai) oppure con una SELECT
Alby
Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 3:58 pm
by protempore
si... avevo già fatto e sembra che funzioni...
non mi ferma più nessuno...

Re: Login automatico dopo la registrazione
Posted: Fri Mar 27, 2009 4:31 pm
by alby
Re: Login automatico dopo la registrazione
Posted: Sat Mar 28, 2009 8:59 am
by protempore
alby wrote:
grazie al tuo aiuto ho risolto... mi sembra anche brillantemente... potrei anche postare il risultato se a qualcuno dovesse interessare... però è un po' complicato perché è associato ai moduli "Cart" e "Orders" ed è forse troppo specifico alla mia soluzione...
Re: Login automatico dopo la registrazione
Posted: Sat Mar 28, 2009 9:07 am
by alby
protempore wrote:
grazie al tuo aiuto ho risolto... mi sembra anche brillantemente... potrei anche postare il risultato se a qualcuno dovesse interessare... però è un po' complicato perché è associato ai moduli "Cart" e "Orders" ed è forse troppo specifico alla mia soluzione...
Può essere comunque una base per un problema similare
Alby
Re: Login automatico dopo la registrazione
Posted: Sat Mar 28, 2009 10:15 am
by protempore
alby wrote:Può essere comunque una base per un problema similare
va bene... se può servire...
il problema:
dovevo realizzare un sistema alternativo a "SelRegistration" di registrazione di un utente... con "SelfRegistration" abilitavo la registrazione dopo la verifica dell'indirizzo email e dopo che l'utente aveva indicato Username e Password nonché compilato le "proprietà" utente stabilite nel gruppo di default...
mi si è posto il problema di utilizzare comunque FEU, ma semplificare la registrazione senza la scelta di Username e PW, nessuna validazione dell'email e solo con la compilazione di alcune proprietà...
in più, dopo questa registrazione, l'utente doveva risultare "loggato" per poter proseguire la navigazione come utente a tutti gli effetti.
la soluzione:
l'idea è stata di modificare un plugin che ho trovato e allego modificato nello .zip (function.regfeucaptcha_form.php) che si incarica di costruire un form che restitisce delle variabili caricate nella sessione utente tali da poter essere successivamente utilizzate per la registrazione vera e propria attraverso un UDT – anch'esso allegato – (a me serviva così... visto che tra il form e la registrazione l'utente doveva confermare e fare altre attività)
in pratica nella pagina nella quale si vuole mostrare il form va richiamato il plugin:
{regfeucaptcha_form grp="conference" url="online-registration-conference.html"}
dove il parametro "grp" sta per il gruppo a cui si vuole associare l'utente (e che deve essere ovviamente configurato in "Frontend User Management") e "url" dove si vuole reindirizzare al submit del form
nella pagina così reindirizzata (o in altra a seconda delle attività che si vogliono realizzare durante la fase intermedia tra il form iniziale e la registrazione vera e propria) va richiamato l'UDT che io ho chiamato "finish_registration" e che ovviamente va copiato dal file allegato e caricato nel sistema.
{finish_registration grp=$smarty.session.conference_grp firstname=$smarty.session.conference_firstname surname=$smarty.session.conference_surname city=$smarty.session.conference_city country=$smarty.session.conference_country email=$smarty.session.conference_email affiliation=$smarty.session.conference_affiliation}
ovviamente questi sono i parametri stabiliti da me per le esigenze che avevo io e se se ne vogliono di diversi vanno fatte le ovvie modifiche all'UDT e al plugin
dimenticavo... nel sistema di registrazione lo username diventa l'indirizzo email indicato dall'utente e la password l'ID dello user
...fatemi sapere se tutto ciò è stato di una qualche utilità...
ps) cambiate l'estensione del file allegato da .jpg a .zip
Re: [Risolto] Login automatico dopo la registrazione
Posted: Sat Mar 28, 2009 8:27 pm
by protempore