Salve a tutti. Sto rifacendo il sito della mia associazione e, lo ammetto, sono un po' arrugginito con i linguaggi di programmazione.
Nonostante tutto l'ho portato a termine in locale, utilizzando XAMPP e gira tutto al meglio.
Portandolo on-line, per�, � venuto fuori un problema per quanto concerne la pagina di login (che serve esclusivamente per l'amministrazione e aggiornamento del sito, quindi con accessi molto limitati): pare che impostando PHP del server all'ultima versione disponibile, la 8.3, le sessioni non vengano salvate correttamente e non capisco il motivo.
Ecco le pagine incriminate:

LOGIN.PHP (semplice pagina di login)
codice HTML:
<html>
<head>  
<title>Amministrazione</title>  
<link rel="icon" href="../images/logo.ico">  
<!-- for-mobile-apps -->  
<meta name="viewport" content="width=device-width, initial-scale=1">  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
</head>
<body>  
<div id="content" class="content">    
<div id="top" class="top">      
<img src="../images/scritta.png" alt="logo"/>    
</div>    
<div id="center" class="center">
      <form method="post" action="administration/session.php">
              <h1>Accedi al Pannello di Gestione</h1>
              <input type="text" id="username" placeholder="Username" name="username"><br/>                           <input type="password" id="password" placeholder="Password" name="password"><br/>                     <button type="submit" name="login">Accedi</button>
      </form>    
</div>  
</div>
</body>
</html>
SESSION.php (pagina che controlla i dati inviati e si comporta di conseguenza):
Codice PHP:
<?php
session_start
();
require_once(
'../db/dbconn.php');
function 
logout(){  
$_SESSION = [];
$params session_get_cookie_params();  
setcookie('PHPSESSID'''time() - 360000$params['path'], $params['domain'], $params['secure'],$params['httponly']);
session_destroy();  
header('Location: ../login.php');
}

if (isset(
$_SESSION['session_id'])) {    
header('Location: main.php');    exit;
}
if (isset(
$_POST['login'])) {    
$username $_POST['username'] ?? '';    
$password $_POST['password'] ?? '';        
if (empty(
$username) || empty($password)) {        
$msg 'Inserisci username e password %s';    
} else {        
$query "SELECT username, password FROM utenti WHERE username = :username ";                
$check $pdo->prepare($query);        
$check->bindParam(':username'$usernamePDO::PARAM_STR);        
$check->execute();                
$user $check->fetch(PDO::FETCH_ASSOC);                
if (!
$user || password_verify($password$user['password']) === false) {            
$msg 'Credenziali utente errate %s';        
} else {            
session_regenerate_id();            
$_SESSION['id'] = session_id();            
$_SESSION['user'] = $user['username'];                        
header('Location: main.php');            
exit;        
}    
}    
printf($msg'<a href="../login.php">torna indietro</a>');  
}
MAIN.php (pagina a cui si dovrebbe giungere inserendo le giuste credenziali):

Codice PHP:
<html>
<head>
  <title>Amministrazione</title>
   <link rel="icon" href="../../images/logo.ico">
  <!-- for-mobile-apps -->
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link href="../css/style.css" rel="stylesheet" type="text/css" media="all" />
</head>
<body>  
<?php      
include 'session.php';   
if (ISSET(
$_POST['logout'])){    
logout();  
}
if (isset(
$_SESSION['id'])) {      
$user htmlspecialchars($_SESSION['user'], ENT_QUOTES'UTF-8');      
$id htmlspecialchars($_SESSION['id']);        
?>  
<div id="content" class="content">   
 <div id="bigTitle" class="bigTitle">
      <img src="../../images/logosha.png"/>
PANNELLO DI CONTROLLO DEL SITO WEB
<img src="../../images/logosha.png"/>    
</div>
    <div id="soci" class="soci">
      <div id="title" class="title">
        <img src="../../images/pawn.png" alt="soci icon" />SOCI<img src="../../images/pawn.png" alt="soci icon" />
      </div>      
<div id="buttons" class="buttons">
        <div id="button" class="button">
        <a href="soci/socilist.php" ><div id="btnctn" class="btnctn"> Gestione Soci </div></a>        </div>
      </div> 
   </div> 
   <div id="giochi" class="giochi">
      <div id="title" class="title">
      <img src="../../images/d20.png" alt="giochi icon" />  GIOCHI <img src="../../images/d20.png" alt="soci icon" />
      </div>      
<div id="buttons" class="buttons">
        <div id="button" class="button">
          <a href="giochi/gamelist.php" ><div id="btnctn" class="btnctn"> Gestione Giochi </div></a>        </div>
      </div>
    </div>    
<div id="gallery" class="gallery">
      <div id="title" class="title">
        <img src="../../images/photo.png" alt="gallery icon" />GALLERY <img src="../../images/photo.png" alt="gallery icon" />
      </div>      
<div id="buttons" class="buttons">
        <div id="button" class="button">
        <div id="btnctn" class="btnctn">  
<a href="gallery/gallist.php" > Gestione Gallery </a>
</div>        
</div>
      </div> 
   </div>    
<div id="copertina" class="copertina">
      <div id="title" class="title">
      <img src="../../images/id.png" alt="copertina icon" />  COPERTINA <img src="../../images/id.png" alt="copertina icon" /> 
     </div>      
<div id="buttons" class="buttons"> 
       <div id="button" class="button">
          <div id="btnctn" class="btnctn">
            <a href="copertina/coplist.php" > Gestione Copertina </a>
         </div>
        </div>
      </div>    
   </div>    
<form name="logout" method="POST" action="main.php">      
<input type="submit" name="logout" class="submitmain" value="LOG OUT">    
</form>
    </div>    
<?php    
} else {      
printf(" Effettua il %s per accedere all'area riservata"'<a href="../login.php">login</a>');       
 }    
?>  
</body>
</html>
Impostando il server su php 8.3 mi sembra di capire che ci siano problemi con session_regenerate_id() in session.php e comunque anche impostando una sessione tipo $_SESSION['pippo'] avviene il redirect a main.php che, per� non vede la sessione.
Impostando tutto a PHP 7.1 il login funziona, ma le pagine successive no, probabilmente perch� in versioni php superiori.
Ribadisco, su XAMPP gira tutto come dovrebbe
Mi sapreste aiutare a risolvere questo problema?
Grazie mille!