Quote Originariamente inviata da Alhazred Visualizza il messaggio
Non devi fare tutto insieme, perché la registrazione e la conferma sono 2 operazioni separate.
Quando l'utente si registra inserisci il record nel DB impostando il campo "status" pari a 0, inoltre prevedi un altro campo di tipo varchar chiamato ad esempio "regid" in cui salvi un codice casuale (diverso per ogni utente).
Oltre al salvataggio sul DB, la funzione di registrazione invierà un'email all'utente, l'email conterrà il testo che ti pare ed un link del tipo

http://www.sito.tld/conferma.php?regid=.....

e come valore di regid ci metterai lo stesso codice che hai salvato nel db.

Adesso devi avere uno script all'interno del file conferma.php (ovviamente puoi chiamarlo come ti pare, basta che sia uguale a quello del link), il quale legge il parametro regid, va a cercarlo nel DB e se lo trova mette "status" pari a 1 al record trovato.
ok..dimmi se ho capito bene.


Io ho 2 pagine, una con lo script di registrazione e l'altra dove c'è la conferma.


In registrazione.php devo modificare la query di INSERT, aggiungendo l'immissione per il campo “status” con valore predefinito 0 , e per il campo reg_id un valore generato casualmente.
Può andare la INSERT così modificata come qui sotto?






if ($num == 0) {
mysql_query("INSERT INTO iscritti VALUES('', '$user', '$password', '$email', '$nome', '$cognome', '$sesso', '$data_nascita', '0', $reg_id)");


echo "La tua registrazione ha avuto buon fine. Benvenuto.<br><a href=index.php>Vai alla home</a>";
} else {
echo "La username è già stata scelta. Riprova<br><a href=registrazione.php>Indietro</a>";
}






Mi potresti scrivere lo script che mi genera questo codice casuale? Questo script va poi in registrazione.php ?


Una volta creatosi il record viene inviata automaticamente una mail contenente il link http://www.sito.tld/conferma.php?regid=..... dove il valore di regid sarà quello generato a caso.


Questo link poi chiama la pagina conferma.php , la quale confronta il valore passatole via $_GET con quello del campo reg_id del record appena creato, e se coincide, ci sarà una query UPDATE per il campo status che cambierà il valore in 1.


Ho capito bene?