Non devi gestire 2 db, solo due tabelle. la pending è uguale alla user solo che in più ha il codice di registrazione. E' semplice
Ti invio la pagina che prende i dati dal form (poi la adatti)
prendo per scontato che ci sia già una risorsa di connesione al db e che sia $conn
Codice PHP:
function stringacasuale()
{
$car = "aAbBcCdDeEfFgGhHiIlLjJkKmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
srand((double)microtime()*1000000);
$elaborazione = '' ;
for ($contatore=0; $contatore<50; $contatore++)
{
$numeroCasuale = rand(0, strlen($car)-1);
$carattere = substr($car, $numeroCasuale, 1);
$elaborazione = $elaborazione . $carattere;
}
return $elaborazione;
}
$ver = stringacasuale();
$message = "Benvenuto $_GET[username],\r\nper confermare la tua iscrizione ed attivare il tuo account, clicca sul seguente link di attivazione:\r\n\r\nhttp://www.tuosito.com/verify.php?key=" . $ver;
$sql = "INSERT INTO mem_pending (username, password, email, ver) VALUES('$_GET[username]', '$_GET[password]', '$_GET[email]', '$ver')";
mysql_query($sql, $conn);
mail ($_GET['email'], 'Conferma di registrazione di ......', $message, "From: tuonome<info@tuosito.com>");
E adesso la verify.php
Codice PHP:
$key = $_GET['key'];
$query = "SELECT * FROM mem_pending WHERE ver='$key'";
$res = mysql_query($query, $conn);
if ($row = mysql_fetch_array($res))
{
$sql = "INSERT INTO mem_user (username, password, email) VALUES('$row[username]', '$row[password]', '$row[email]')";
$del = "DELETE FROM mem_pending WHERE ver='$key'";
mysql_query($sql, $conn);
mysql_query($del, $conn);
mysql_close();
}
else
{
errore
}
Vedi.
Cerca nel pending la riga che contiene la key giusta.
Se c'è, inserisce i dati di quella riga in user e cancella la riga stessa da pending
Devi solo aggiungere qualcosa per gestire gli errori se vuoi.
Spero sia comprensibile