non l'ho passato subito perchè speravo fosse una mia ignoranza tra le dinamiche php...

<?phpsession_start();
$conta = 0;
include("accesso_db.php");
include("funzioni_mw.php");
include("funzioni_utente.php");
include('funzioni_email.php');
include('funzioni_post.php');


?>
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
salto i i meta, i css e gli script javascript
</head><body>
<?php
$id = substr($_SESSION['utente_loggato_id'],1);
$utenteScadenza = '';

if(isset($_POST['pubblica_utente'])) {
if($_SESSION['utente_tipologia'] == 'attivita') {
if($_SESSION['pagina_provenienza'] == 'primo_accesso') {
$id = utenteRegistraAccessoPrimo($connessione,'attivita' );
$_SESSION['utente_loggato_id'] = 'a'.$id;
}
else
utenteRegistraAggiornamentoAttivita($connessione,$ id);
}
else {
if($_SESSION['pagina_provenienza'] == 'primo_accesso') {
$id = utenteRegistraAccessoPrimo($connessione,'persone') ;
$_SESSION['utente_loggato_id'] = 'p'.$id;
}
else
utenteRegistraAggiornamentoPersona($connessione,$i d);
}
}
echo "<script type='text/javascript'>alert('pre-prebandana : -".$_SESSION['utente_tipologia']."+".$_SESSION['utente_loggato_id']."-');</script>";
if($_SESSION['utente_tipologia'] == 'attivita') {
$dom = "select scadenza from attivita_registrazioni where id='".$id."'";
$risp = mysqli_query($connessione,$dom);
while($a = mysqli_fetch_assoc($risp)) {
if(is_null($a['scadenza']))
$utenteScadenza = 'in attesa';
elseif(date('Y-m-d') > $a['scadenza'])
$utenteScadenza = 'scaduto';
echo "<script type='text/javascript'>alert('prebandana ".$conta." : -".$a['scadenza']."+".$utenteScadenza."-');</script>";$conta++;
}
}

include("bandana.php");
echo "<script type='text/javascript'>alert('".$conta." : -".$a['scadenza']."+".$utenteScadenza."-');</script>";$conta++;
si arriva a utente.php in diversi modi : tramite tag a, tramite form via post o tramite chiamate js location.href. a seconda dell'operazione dell'utente.
Mi sono accorto della doppia elaborazione quando ho aggiunto il controllo della scadenza del contratto. Certe volte il controllo veniva ignorato. Così.. debug artigianale con 3 alert.. e questi diventatavano 5. Non 6 perchè durante la prima elaborazione $_SESSION['utente_tipologia'] era vuota.
son stato chiaro? serve altro?