Dove hai questo script $conn è sempre inizializzata ed è corretta? Verifica che lo sia in tutte le condizioni
Funziona benissimo

La variabile $method non so dove e come la inizializzi, ma verifica che anche questa sia sempre corretta.
Correttissima

Con un form normale e non Ajax

$form è un input hidden di value='registro'

Si è una svista $conn e $connessione sono tutte $conn

Certo mi chiede se voglio reinviare e accetto

Il problema è proprio qui, $form risulta compilato difatti se all'interno prima dell'unset metto un echo o qualsiasi altra cosa, questa non viene eseguita ma bensì l'unset è sempre eseguito! Magia.

La session_start è avviata correttamente.


Mi sembra quasi una barzelletta.. se prima o dopo di unset metto tutto quello che voglio, non viene eseguito niente tranne il cambio della $_SESSION.. unset o = false o anche = ad un valore qualsiasi.