Originariamente inviato da fermat
per il secondo problema.
in teoria se la variabile di sessione è settata il codice all'interno dell'if non dovrebbe essere eseguito, e di conseguenza il valore non dovrebbe cambiare.
o sbaglio??
Beh... nel tuo codice leggo:
Codice PHP:
if(!isset($_SESSION['utente'])) {
 foreach (
$objConn->getUtente($_COOKIE['UTENTE']) as $var) {
   
$_SESSION['utente']['email'] = 'CIAO';

Dal poco che capisco con questo codice, trovo che ci sia un grossolano errore di base.
Se la variabile di sessione 'UTENTE' non è dichiarata, quindi non è presente nella sessione, vai ad interrogare un oggetto e ti fai restituire un array.
Cicli poi questo array con il foreach e in ogni ciclo assegni alla variabile $_SESSION['utente']['email'] il valore di CIAO.
In poche parole, questo codice fa l'esatto contrario di quello che serve a te.
Non capisco poi un'altra cosa.
Nel foreach vai a recuperare da una classe, un nome utente o qualcosa del genere.
La classe restituisce un array e lo cicli nel foreach.
Per ogni rigo del foreach, istanzi una variabile $var che poi non usi.
Per ogni ciclo del foreach, indichi allo script di sovrascrivere la variabile $_SESSION['utente']['email'].
Non capisco proprio cosa tu voglia fare.
Forse è il caso che spieghi bene cosa deve fare questo script, perché secondo me il problema non è delle sessioni, ma di procedimento.

Originariamente inviato da fermat
evidentemente è il provider che ha qualce configurazione particolare, perchè su nessun'altro provider o a casa mi è mai capitato.
A questo riguardo, hai controllato se per caso le sessioni vengono istanziate dal file della classe che utilizzi nel codice?