[Risolto] Login automatico dopo la registrazione

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

Post Reply
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

[Risolto] Login automatico dopo la registrazione

Post 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...
:P :P
Last edited by protempore on Sat Mar 28, 2009 9:00 am, edited 1 time in total.
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
alby

Re: Login automatico dopo la registrazione

Post 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
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Login automatico dopo la registrazione

Post by protempore »

ovviamente a me interessa ottenere la variabile "logged_in = 1"

ma so mica come fare
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
alby

Re: Login automatico dopo la registrazione

Post 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
Last edited by alby on Fri Mar 27, 2009 9:30 am, edited 1 time in total.
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Login automatico dopo la registrazione

Post by protempore »

ah... semplicemente così?

e io che sono ammattito...
;D

adesso provo...

grazie
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Login automatico dopo la registrazione

Post 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...
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Login automatico dopo la registrazione

Post 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... ;D

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);
      }
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
alby

Re: Login automatico dopo la registrazione

Post 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... ;D
collegagli il db e cerca di richiamare l'uid dell'utente (se in qualche modo l'hai) oppure con una SELECT

Alby
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Login automatico dopo la registrazione

Post by protempore »

si... avevo già fatto e sembra che funzioni...

non mi ferma più nessuno...  :D :D :D
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
alby

Re: Login automatico dopo la registrazione

Post by alby »

protempore wrote: non mi ferma più nessuno...  :D :D :D
:D
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Login automatico dopo la registrazione

Post by protempore »

alby wrote:
protempore wrote: non mi ferma più nessuno...  :D :D :D
:D
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...
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
alby

Re: Login automatico dopo la registrazione

Post 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
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: Login automatico dopo la registrazione

Post 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
Attachments
plugin_regfeucaptcha.jpg
plugin_regfeucaptcha.jpg (7.67 KiB) Viewed 2183 times
Last edited by protempore on Sat Mar 28, 2009 11:19 am, edited 1 time in total.
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
User avatar
protempore
Power Poster
Power Poster
Posts: 599
Joined: Mon Jan 14, 2008 9:08 pm

Re: [Risolto] Login automatico dopo la registrazione

Post by protempore »

solo un'osservazione che davo per sottintesa... non voglio essere ne benedetto ne maledetto... il sistema non dovrebbe creare problemi particolari al DB... ma, come si dice... se lo usate... la responsabilità è vostra...

;D ;D ;D
An eye for an eye will make the whole world blind
Mahatma Gandhi (1869-1948)
Post Reply

Return to “Italian - Italiano”