ho il mal di testa...!!!
una semplice interazione ajax modificherebbe il modo in cui hai strutturato il codice.
Il redirect è la causa dei tuoi mali....
Per non dilungare la cosa potresti eliminare questo:
"il redirect è la causa dei tuoi mali"codice:header("location: genera-buono.php?email=$email");//redirect
ed inserire nella prima condizione il codice della 2 pagina.
Potrebbe essere un'alternativa......si potrebbe fare mooooolto meglio però..