Sto vedendo come funziona un codice trovato in rete per la visione e l'inserimento di news. Dal lato amministratore è previsto un login che consente di accedere all'area modifica. Il problema è che dopo aver inserito username e password avviene sì l'accesso, ma subito dopo la variabile di sessione che fino al passaggio successivo conteneva un valore, si svuota. Non capisco per quale motivo.

Questo è il file verify.php

Codice PHP:
<?php
session_start
();

//Controllo che la sessione sia attiva
if(!IsSet($_SESSION['intUserID'])){

    
//Controllo se l' utente vuole loggarsi
    
$username = @$_POST['txt_username'];
    
$password = @$_POST['txt_password'];
    
    
//Controllo se l' username e la password non sono vuoti
    
if((!strlen($username) == 0) and (!strlen($password) == 0)){
        
//Effettuo il controllo dei dati
        
$strSQL "SELECT * FROM login";
        
$strSQL .= " WHERE strUser = '".$username."' AND strPass = MD5('".$password."')";
        
$result mysql_query($strSQL);
        
$row mysql_fetch_row($result);
        
//Controllo se l' utente e' stato trovato
        
if(!strlen($row[0]) == 0){
            
//Effettuo il login
            
$_SESSION['intUserID'] = $row[0];
            
print_r ($_SESSION);
        
        }
        
//Libero la memoria
        
mysql_free_result($result);
    }
}

if(@
$_GET['logout'] == 1){ //Effettuo il Logout
    
$_SESSION = array(); //Desetto tutte le variabili di sessione
    
session_destroy(); //Distruggo le sessioni
}
?>
questo invece il file da cui si effettua l'accesso e che in caso di login mostra le aree che possono essere modificate:

Codice PHP:
<?php require_once('../includes/db_conn.php');?>
<?php 
require_once('../includes/verify.php');?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Amministrazione News</title>
</head>

<body>

<?php
//Controllo che l' utente sia loggato



echo "la sessione :".$_SESSION['intUserID'];
print_r ($_SESSION);
if(IsSet(
$_SESSION['intUserID']))

{
    
    
//Recupero la pagina da visualizzare
    
$page = @$_GET['page'];
    
    
//Effettuo lo switch
    
switch($page)
    {
        
//*.*.*.*.*.*.*.*.*.*.
        
case 'amministratore':
            require_once(
'pages/amministratore.php');
            break;
        
//*.*.*.*.*.*.*.*.*.*.
        
        //*.*.*.*.*.*.*.*.*.*.
        
case 'autore':
            require_once(
'pages/autore.php');
            break;
        
//*.*.*.*.*.*.*.*.*.*.
        
        //*.*.*.*.*.*.*.*.*.*.
        
case 'sezione':
            require_once(
'pages/sezione.php');
            break;
        
//*.*.*.*.*.*.*.*.*.*.
        
        //*.*.*.*.*.*.*.*.*.*.
        
case 'articolo':
            require_once(
'pages/articolo.php');
            break;
        
//*.*.*.*.*.*.*.*.*.*.
        
        //*.*.*.*.*.*.*.*.*.*.
        
default:
            require_once(
'pages/menu.php');
            break;
        
//*.*.*.*.*.*.*.*.*.*.
    
}
    
}else{ 
//Visualizzo il LOGIN
?>
<table align="center">
    <form method="post" action="index.php">
    <tr height="20">
        <td colspan="2" align="center" bgcolor="#E9E9E9">Login Amministrazione</td>
    </tr>
    <tr>
        <td>Username:</td>
        <td><input type="text" name="txt_username"></td>
    </tr>
    <tr>
        <td>Password:</td>
        <td><input type="password" name="txt_password"></td>
    </tr>
    <tr height="20">
        <td colspan="2" align="center"><input type="submit" value="Login"></td>
    </tr>
    </form>
</table>
<?php
}
?>

</body>
</html>
Una volta effettuato l'accesso viene visualizzata, all'interno dell'index, la pagina pages/menu.php che consiste in :

<h1>Amministrazione News</h1>
<hr/>[*]Cambia Login[*]Gestione Autori[*]Gestione Sezioni[*]Gestione Articoli[*]Log Out

cliccando su uno qualsiasi di questi link, viene mostrato di nuovo il pannello del login. Ho messo dei print e degli echo per vedere cosa succedeva di questa variabile $_session, ma appena ci si logga con successo, il suo valore diventa 1 mentre subito dopo si svuota e non capisco perchè.