Il est où le $_SESSION['id']="4"; dont tu parlais dans ton 1er message ? Il n'y en a pas.
Si tu crois que le $_SESSION['id']=$_POST['id']; fait la même chose, détrompe-toi
Ton $_SESSION['id']=$_POST['id']; n'est jamais exécuté parce que la condition if (isset($_POST['btnEnvoyer'])) n'est jamais remplie. En effet, tu as bien un champ btnEnvoyer dans ton formulaire, mais le formulaire est envoyé à recuperer.php (à cause du <form action="recuperer.php") Donc quand compte.php s'exécute, $_POST['btnEnvoyer'] n'existe pas.
Le traitement de ton formulaire devrait être dans recuperer.php, ou tu devrais mettre action=compte.php. Mais tu ne peux pas dire action = un fichier, et faire le traitement dans l'autre !
Remarque: fais des copier-coller corrects. Car il te manque une apostrophe à $_SESSION['id']=$_POST['id'];, ça m'étonnerait que ça passe sans "parse error"