Aggiungo, il tuo script di conferma andrebbe modificato, prima di tutto eseguendo una qualche verifica sul parametro che arriva, perché non ci vuole niente a modificarlo a mano, basta editare il link e se qualcuno volesse potrebbe farti bei danni, compresa la cancellazione del DB (cerca sql injection).
Dovresti anche usare come minimo le funzioni mysql[b]i/b]_, con la i finale, quelle senza i sono state deprecate da PHP 5.5 ed eliminate da PHP 7, Se usassi PDO sarebbe ancora meglio.
Puoi fare direttamente l'update e verificare le "affected rows" se è 1 vuol dire che il token è stato trovato e l'attivazione è stata fatta, se è 0 invece il token non è stato trovato, oppure l'account era già attivo.
In pratica
Chiaramente con le modifiche che ti ho detto all'inizio, io te l'ho scritto così per brevità.Codice PHP:
$query = "UPDATE user set active='1' WHERE token='$token'";
mysql_query($query);
if ( mysql_affected_rows() == 1 )
{
echo "Account attivato";
}
else
{
echo "Stai usando un link errato oppure il tuo account è già attivo.";
}
Quando un utente esegue una qualche operazione sul tuo sito, dagli sempre un feedback, sia che le cose vadano bene, sia che vadano male, il tuo codice in caso di errore muore con un messaggio che per l'utente non ha senso.
I die() mentre sei in fase di sviluppo vanno bene, ma su un sito in produzione non andrebbero usati, andrebbe intercettato il problema e mostrato un messaggio adeguato per l'utente.