per la prima parte, non ti so rispondere... il codice che hai postato non prevede "caricamenti parziali" della pagina

per la richiesta di chiarimento, volevo dire che se provi a lanciare lo script più volte il valore della variabile di sessione sarà uguale a quello dell'input del form solo la prima volta, perché una volta che la sessione è settata lo script non prevede una modifica del suo valore