Ciao a tutti.
Ho create un sito nella quale un'utente accede alla sua area personale. Fino alla homepage non ci sono problemi, le variabili di sessione vengono passate tranquillamente. Ma quando accedo alla pagina delle info dell'utente, le uniche variabili di sessione che riesce a prendere sono il nome e il cognome. La città, il cap e la residenza non gli riconosce. Qui di seguito vi lascio i codici di tutte le pagine PHP:

login:

Codice PHP:
<!DOCTYPE html>
<html lang="it">
<head>
    <title>TES</title>
    <link href="style.css" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="tes-ico(1).ico" />
</head>
<body>
    <div class ="header">
    <div class="headerContent">
        <img src="tes-logo.png">
    </div>
    <div class="header-right">
    <a class="active" href="TESlogin.php">Home</a>
    <a href="#contact">Contatti</a>
    <a href="#about">Info</a>
    </div>
</div>
<br><br><br>
 <div class ="container">
 <form name = "login" method = "POST">
    <p>
     <input type="text" placeholder="email" name = "email" size = 20 required><br/><br/>
     <input type="password" placeholder="password" name = "password" size = 20 required><br/><br/>
     <button class = "button" type="submit">login</button>
    </p>
 </form>
    <a href="form.php"><h2>non hai un account? registrati ora.</h2></a></div><br/>
    <div class="footer">
        Developed by TES spa. All rights reserved &copy
   </div>


   <?php
   
if(isset($_POST) && ! empty($_POST)){   

   
// info per collegamento al DB
   
$server "127.0.0.1";
   
$username "root";
   
$password "";
   
$database "tes";

   
// connessione al DB
   
$conn mysqli_connect($server,$username,$password) or die("Connessione non riuscita");

    
$usn mysqli_real_escape_string($conn,$_POST['email']);      // rimuove tutti i caratteri speciali 
    
$passw mysqli_real_escape_string($conn,$_POST['password']);  // e per evitare attacchi di SQL injection


   /* se il DB esiste, effettua la connessione
   altrimenti no */
  
mysqli_select_db($conn,$database) or die("database non presente");

  
/*controllo dei dati inseriti dall'utente nel form
    per verificare correttezza o esistenza dell'utente inserito*/

  
$query "SELECT * FROM clienti
        WHERE email = '
$usn'";

  
$result mysqli_query($conn,$query) or die("errore");

  
$row mysqli_fetch_assoc($result);
  
  if(
$row && password_verify($passw$row['password'])){

    
session_start();
    
$_SESSION['user'] = $usn;
    
$_SESSION['cod_cliente'] = $row['id'];
    
$_SESSION['nome'] = $row['nome'];
    
$_SESSION['cognome'] = $row['cognome'];
    
$_SESSION['telefono'] = $row['telefono'];
    
$_SESSION['residenza'] = $row['residenza'];
    
$_SESSION['citta'] = $row['citta'];
    
$_SESSION['cap'] = $row['cap'];


    
header('Location: myTES.php'); /* reindirizzamento alla pagina dello user*/

   
}  
  else
    echo 
"<b><p id = 'p1'>password o email errate</p></b>";
}
   
?>
form
Codice PHP:
<!DOCTYPE html>
<html>
<head>
  <title>registrazione</title>
  <link href="style_form.css" rel="stylesheet" type="text/css">
   <link rel="shortcut icon" href="tes-ico(1).ico" />
</head>
<body>
  <br>
<form class = "form-space" method="POST">
  <h1>Inserisci i tuoi dati</h1>
  nominativo <input type="text" name="nome" placeholder="nome" pattern="[a-zA-Z]{1,}" required>
         <input type="text" name="cognome" placeholder="cognome" pattern="[a-zA-Z]{1,}" required><br><br>
  data di nascita <input type="text" name="dob" placeholder="gg-mm-aaaa" maxlength="10" required><br><br>
  email &nbsp;<input type="text" name="email" placeholder="mrossi@example.it" required ><br><br>
  password <input type="password" name="password" required><br><br>
  sesso:&nbsp;
     M  <input type="radio" checked="checked" name="gender" value="M">&nbsp;
     F  <input type="radio" name="gender" value="F"><br><br>
  numero telefono <input type="text" name="numero_tel" maxlength="10" pattern="[0-9]{1,}" required><br><br>
  residenza <input type="text" name="residenza" required> &nbsp;
  citta' <input type="text" name="citta" pattern="[a-zA-Z]{1,}" required><br><br>   
  provincia <input type="text" name="provincia" maxlength="2" pattern="[a-zA-Z]{1,}" required> &nbsp;
  CAP <input type="text" name="cap" maxlength="5" pattern="[0-9]{1,}" required><br><br>
  <input type = "submit" value = "invio" class="button"> &nbsp;&nbsp; <a href="TESlogin.php">torna alla homepage</a>
</form>
</body>
</html>

<?php
   
if(isset($_POST) && ! empty($_POST)){   // esegue le operazioni solo se nelle caselle di input è stato
                                          // inserito qualcosa, per evitare messaggi di errori di "undefined index"

    
include 'function.php';   // include le funzioni scritte in function.php


// info per collegamento al DB
   
$server "127.0.0.1";
   
$username "root";
   
$password "";
   
$database "tes";

   
// info utente 
   
$nome =  $_POST['nome'];
   
$cognome $_POST['cognome'];
   
$dob $_POST['dob'];
   
$gender $_POST['gender'];
   
$telefono $_POST['numero_tel'];
   
$residenza $_POST['residenza'];
   
$citta $_POST['citta'];
   
$provincia $_POST['provincia'];
   
$cap $_POST['cap'];
   
$email $_POST['email'];
   
$pass $_POST['password'];

   
// connessione al DB
        
$conn mysqli_connect($server,$username,$password) or die("Connessione non riuscita");

/* se il DB esiste, effettua la connessione
   altrimenti no */
    
mysqli_select_db($conn,$database) or die("database non presente");

            
// controllo correttezza dati inseriti

              
if( chkEmail($email) && isData($dob) ) {
                    
                
$query "SELECT * FROM clienti                 
                WHERE email = '
$_POST[email]'";        // controllo se esiste già l'email inserita

    
$result mysqli_query($conn,$query) or die("errore");

    
$num mysqli_num_rows($result);    // può avere valore 0 (inesistente) o 1 (esistente)

    
if($num == 1)
        die(
"utente già esistente.");

    else {
        
            
/* se non esiste lo inserisco */

        
$hash password_hash($passPASSWORD_DEFAULT); // cifro la password
        
$insert "INSERT INTO clienti (nome,cognome,residenza,email,password,sesso,DoB,telefono,citta,provincia,cap) 
                    VALUES (
                    '
$nome', 
                    '
$cognome',
                    '
$residenza', 
                    '
$email',
                      '
$hash',
                       '
$gender',
                       '
$dob',
                      '
$telefono',
                      '
$citta',
                      '
$provincia',
                      '
$cap')";

         if(
mysqli_query($conn,$insert))

          
header('Location: TESlogin.php');
     }
    }
    else
        echo 
"<b><p id = 'p1'>dati inseriti errati</p></b>";
  }
?>
homepage pagina utente:
Codice PHP:
<?php
 session_start
();
if(!isset(
$_SESSION['user'])){
    
header('Location: TESlogin.php');
}
    else{
?>

<!DOCTYPE html>
<html>
<head>
    <title>myTES</title>
    <link href="myTES_style.css" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="tes-ico(1).ico" />
</head>
<body>

<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
  <a href="myTES.php">Home</a><br><br>
  <a href="logout.php">Esci</a>
</div>


<div id = "main">

<div class="header">
 <span id="site-title">My<b>TES</b></span>
 <span class="hamburger-button" onclick="openNav()"><b>☰</b></span>
</div><br><br>

 <div class="sub-header">
 <span id="user-name"> Ciao <b><?= strtoupper($_SESSION['nome'])?></b></span> 
   <a href="info_user.php">    <span class="avatar-image"><img src="avatar(1).png"></span></a>
 </div>
                              <hr>
<p id="p-abbonamento"> 
  il mio abbonamento 
  <span class="dropdown">
    <i class="down"></i>
   <span class="dropdown-content">
    <b>INTERNET + TELEFONO</b><br>
        34,95 &euro;
   </span>
   </span>
</p>
                                               <hr><br><br>

 <div class="container">
  I miei consumi
    <hr>
    <img src="calendar.png">&nbsp; dal 01/01/2018 al 31/01/2018<br><br>
    <span class="p-first-container">
    <img src = "home-logo.png">&nbsp; <?= $_SESSION['telefono'?>
    <span id = "rcorners3"><?php echo rand(20,80).','.rand(0,99); ?>&euro;</span>
  </span>
 </div><br><br>

 <div class="container">
  Il mio conto
    <hr>
    <div id="largebox-container2">
      <div id="box1">
        <b>ULTIMA FATTURA</b><br>
        <?php 
        
function random_alphanumeric_string($length) {
        
$chars '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
        return 
substr(str_shuffle($chars), 0$length);
        }

        echo 
random_alphanumeric_string(10).'<br>';

        
?>
        <b>SCADENZA</b><br>
        25/01/2018
      </div>
      <div id="box2">
        <p align="center"><b><?php echo rand(20,80).','.rand(0,99); ?>&euro;</b></p>
      </div>
      <div id="box3">
        <p class="p-box3"><span>✓</span>&nbsp;emessa</p>
      </div>
    </div>
                <hr>
 </div><br><br>

 <div class="footer"></div>


</div>

<!----- script in javascript per effetto comparsa laterale menu ----->
<script>
function openNav() {
    document.getElementById("mySidenav").style.width = "250px";
    document.getElementById("main").style.marginLeft = "250px";
}

function closeNav() {
    document.getElementById("mySidenav").style.width = "0";
    document.getElementById("main").style.marginLeft= "0";
}
</script>

</body>
</html>

<?php
 
}
?>
pagina info utente:

Codice PHP:
<?php
 session_start
();
if(!isset(
$_SESSION['user'])){
    
header('Location: TESlogin.php');
}
    else{
?>

<!DOCTYPE html>
<html>
<head>
    <title>myTES</title>
    <link rel="shortcut icon" href="tes-ico(1).ico" />
    <link href="info_user.css" rel="stylesheet" type="text/css">
</head>
<body>


<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
  <a href="myTES.php">Home</a><br><br>
  <a href="logout.php">Esci</a>
</div>

<div id="main">

<div class="header">
 <span id="site-title"><b>Il mio profilo</b></span>
 <span class="hamburger-button" onclick="openNav()"><b>☰</b></span>
</div>

<div class="container">
    <div id="largebox-container2">
      <div id="box1">
          <img src="avatar.png">
      </div>
      <div id="box2">
          <span style="color:#fffa00;">
              <b><?= strtoupper($_SESSION['nome']) ?></b><br>
              <b><?= strtoupper($_SESSION['cognome'])?></b><br>
          </span>
          <hr style="color: white; width: 400px;"><br>
          <span style="color:grey">
              <?= strtoupper($_SESSION['residenza'].'-'.$_SESSION['citta'])?>,
              <?= strtoupper($_SESSION['cap'])?>
              </span>
      </div>
</div>

</div>

<!----- script in javascript per effetto comparsa laterale menu ----->
<script>
function openNav() {
    document.getElementById("mySidenav").style.width = "250px";
    document.getElementById("main").style.marginLeft = "250px";
}

function closeNav() {
    document.getElementById("mySidenav").style.width = "0";
    document.getElementById("main").style.marginLeft= "0";
}
</script>
</body>
</html>
<?php
}
?>
PS: nel database i campi sopra citati sono salvati come citta, residenza e cap.