incontro il problema che ogni volta che inserisco un nuovo elemento mi cancella il contenuto dell'array precedentemente creato..
questo perchè stai facendo questo:
Codice PHP:
// aggiungo un nuovo elemento
$persona[] = array(....);
// resetto $persona allo stato in cui l'ho salvato l'ultima volta.
$persona=  $_SESSION['persona']; 
qualcuno può darmi una mano?
onestamente, penso che tu stia correndo un po' troppo. non dovresti accontentarti del 'basta che funzioni', ma anche capire cosa stai facendo.
ad esempio, sai cosa succede quando si inserisce quel 'global $nome;'? e come funziona quando passi i paramentri ad una funzione? e session_start();?