Suggerimento e aiuto su email di conferma account

Emix

Utente Attivo
15 Feb 2010
596
0
16
Salve a tutti...
Ho finito di fare uno script per registrazione utente e login... funziona anche l'invio dell'email con il relativo link, ma la conferma mi sembra laboriosa.. Mi spiego meglio...

Io utente devo registrarmi, accedo alla pagina register.php, inserisco tutti i dati e faccio submit, mi riporta ad una pagina che mi dice di essermir egistrato regolarmente e di controlla l'email per verificare l'indirizzo. Controllo email, arriva email con link, e il link mi porta ad un form con scritto User e Password, li inserisco e se sono esatti l'account si attiva e mi appare la pagina di login...A questo punto l'utente deve effettuare il login...

Mi sembra tutto troppo laborioso... Come potrei fare per snellire la procedura?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Non è troppo laborioso, è il sistema più semplice per verificare un utente, ti basta generare una stringa random e inviarla con un link via e-mail, nella pagina di conferma controllerà la variabile e l'user nel db e lo attiverà cambiando un ulteriore campo nel db, fatto ciò al login sarà sufficiente controllare se lo stato è verificato nel db
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
eh ma io non sono capace a generare un codice univoco da aggiugere all'utente nel link di conferma e a richiamarlo... Io l'ho fatta in questa maniera prorpio perche mi rimaneva più facile... Ma ora mi rendo conto che forse è macchinosa...
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Ci sono molti modi per generare un codice quasi del tutto univoco

es.
PHP:
$final = mt_rand(1000,999999);
 for($i=0;$i<rand(1,1000);$i++) $final .= uniqid('',true).microtime(true).mt_rand(100,100000);
echo md5($final);

Io di solito uso qualcosa di simile, comunque ovviamente una volta generato lo controlli nel db ed eventualmente lo rigeneri quindi siamo già a 2 tentativi di unicità (anche se è quasi matematicamente impossibile che ce ne sia uno uguale), e quando l'utente conferma la registrazione elimini il codice di conferma cosi sei praticamente sicuro al 100%
 
Ultima modifica:

Emix

Utente Attivo
15 Feb 2010
596
0
16
perdona la mia ignoranza... ma detta in tutta sincerità non so proprio dove mettere le mani,... :( aiutami a capire... non voglio pappe pronte...
 

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
Allora da quanto ho capito io la gestisco cosi di solito...

hai la pagina registrazione.php con input per i vari cambi che registri

quando dai il submit a una pagina registrazioneok.php salvi tutto e tramite la funzione mail di php mandi un mail con la conferma dei dati e un link alla pagina checkregistrazione.php con un numero dinamico
nel momento in cui salvi l'utente crei un codice o un numero random che salvi nel db utenti nel campo es. active_utente.
ipotizza che generi un numero random es 123456 nella mail che mandi il link sarà www.tuosito.it/checkregistrazione.php?codice=123456 quindi nella pagina checkregistrazione.php non farai altro che controllare se coincidono il codice passato per get e il codice a db se è uguale setti a 1 il campo active_utente

spero di essere stato chiaro
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
se ho capito bene... uso un qualcosa che genera x numeri, questi x numeri vengono scritti dentro numero_iscrizione, la mail che arriva all'utente sarà checkmail.php la quale controllerà i numeri nel link, li confronta col db e se li trova setta account_active 1 altrimenti resta 0. Ora mi servirebbe capire come se fa a fa tutta sta cosa asd.... Generare numeri, posso usare la funzione che gia uso che crea 13 numeri univoci... il problema è aggiungerla al link e cliccando deve uscire fuori quella cosa tutto li...
 

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
la maggiorparte del procedimento lo hai gia fatto quando invii la mail per avere un codice sicuramente univoco puoi usare piu semplicemente la funzione time(). questo valore lo devi salvare a db in modo da poterlo confrontare quando l'utente clicca sul link nella mail e va alla pagina di controllo. se è verificata la condizione valore_db = valore_get_del_link setti il campo del db a 1 se no resta semplicemente al valore che avevi inserito quando hai inviato la mail quindi time()
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
potresti farmi un esempio pratico per favore? ti ringrazio molto..
 

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
:( aiutami a capire... non voglio pappe pronte...

allora tu immagina di avere una tabella utenti con vari campi tra cui questo famigerato active_utente

Tabella: Utenti
id_utente
nome_utente
...
...
...
active_utente

quando un utente si registra salvi il tutto a db

PHP:
$numero_univoco = time();
				$query = "INSERT INTO utenti ( nome_utente , mail_utente , active_utente ) VALUES ('" . $_POST['user'] . "',  '" . $_POST['mail'] . "',  '" . $numero_univoco . "')";
				
				$insert = mysql_query($query);

una volta inserito manderai una mail di conferma

PHP:
$header = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
					
				$header .= "To: <". $_POST['mail'] .">\n";;
				$header .= "From: MITTENTE\n";
				$header .= "Gosh-Mailer:\n\n";
				$oggetto = "Registrazione tuo sito";
				$messaggio = "Caro " . $_POST['user'] . " abbiamo ricevuto la tua richiesta clicca sul link sottostante per attivare la tua registrazione\n\n\nwww.tuosito.com/checkregistrazione.php?code=" . $numero_univoco;
				
				mail("",$oggetto,$messaggio,$header);

a questo punto ricevuta la mail l'utente cliccherà sul link che lo rimanda alla pagina checkregistrazione e non ti resta che fare questo (ovviamente con i dovuti controlli)

PHP:
$query = "UPDATE utenti SET active = '1' WHERE active_utente = '" . $_GET['code'] ."'";
			
	$update = mysql_query($query);
 
Discussioni simili
Autore Titolo Forum Risposte Data
L [PHP] Suggerimento su sessione PHP 6
FabiettoMilano82 Suggerimento per corso di sviluppo APP e corso di sviluppo PHP Programmazione 3
B Ho bisogno di un migliore Host - qualche suggerimento? Hosting 2
E Suggerimento creazione contest video su Pagina Html Javascript 4
A Suggerimento per realizzazione gestionale documentale PHP 0
M Suggerimento per la gestione di URL all'interno di una pagine web HTML e CSS 0
R Suggerimento su siti di valutazione di siti internet Vendere e Acquistare pubblicita' online 2
V Suggerimento script Javascript 0
N [VENDO] suggerimento a 1600 amici o pubblicità su fanpage da 7000 (facebook) Annunci servizi di Social Media Marketing 1
R suggerimento su invio mail dopo click PHP 2
borgo italia suggerimento validazione email PHP 1
F Suggerimento per il mio primo sito Presenta il tuo Sito 4
G Suggerimento per l'interlinea HTML e CSS 2
tabboz Suggerimento! Supporto Mr.Webmaster 5
P Suggerimento nuove funzioni Supporto Mr.Webmaster 0
N Suggerimento... Supporto Mr.Webmaster 6
P Aiuto per rendere un Bot Telegram Privato PHP 1
M Un aiuto da chi ha apple Mac e Software 0
P Richiesta di aiuto Presentati al Forum 1
A Aiuto per pagina php PHP 0
M Questa pagina non carica correttamente Google Maps: aiuto!! HTML e CSS 1
I Aiuto php Dependent Lookup PHP 0
R Aiuto con le query MS Access 2
M AIUTO ESERCIZIO JAVA Javascript 1
G Aiuto con htaccess e rewriterule PHP 0
T cercasi aiuto per file d1 (open-edge db) Database 0
M Aiuto con inserimento immagini WordPress 6
D aiuto schermata photoshop Photoshop 0
L Aiuto per programma web php/mySQL PHP 2
A Aiuto php colore diverso PHP 10
L Aiuto creazione menu mancante WordPress 0
C Aiuto compiuto scuola PHP/MySQL PHP 2
G Insert into select - Aiuto MySQL 0
I Aiuto bash linux Programmazione 1
F Aiuto java script Javascript 2
R Cerco aiuto Offerte e Richieste di Lavoro e/o Collaborazione 7
I Aiuto query MySQL 8
G Aiuto HTML, collegamento con un bottone a una <div> di un' altra pagna HTML e CSS 5
R Aiuto sito html Offerte e Richieste di Lavoro e/o Collaborazione 3
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
G Mi dite come faccio? Aiuto photoshop ? Photoshop 1
C prestashop paragamento contrassegno aiuto modulo E-Commerce 0
Michelebozzo [PHP] Rimuovere pubblicazione nome pagina ... aiuto! PHP 7
Caldus richiesta aiuto Mac e Software 0
R [Javascript] Aiuto su questo script Javascript 2
Z Gestionale in Php/mysql: Quanto farsi pagare? Aiuto! Discussioni Varie 0
Giacomo92 [HTML] AIUTO!! Regular Expression :( Offerte e Richieste di Lavoro e/o Collaborazione 15
T Aiuto per php7 e mysqli PHP 3
T mysql tutorial per importare tabelle access in mysql aiuto MySQL 2
K [Java] aiuto switch case Java 1

Discussioni simili