ciao,
ho un sito multilingua in cui le var lingua sono memorizzate nelle sessioni, tipo:
$_SESSION['lingua'] = $_GET['lingua'];

funziona tutto bene, tranne quando devo inviare dei dati via form. Praticamente mi perde le sessioni, non riconosce più la lingua. Cioè, l'email viene cmq spedita, oppure i messaggi di errore vengono correttamente visualizzati.Ma quando clicco su un link qualsiasi del menu, mi perde le sessioni...
dev' essere probabilmente un problema di headers, ma non sono riuscito a trovare il problema.
da notare che non ci sono spazi vuoti prima, output etc...
codice:
Codice PHP:
<?php

switch ($_SESSION['lingua']) {

    case 
'it':
    
$lingua "ITALIANO";
    break;

    case 
'en':
    
$lingua "INGLESE";
    break;

    case 
'gr':
    
$lingua "GRECO";
    break;

    case 
'es':
    
$lingua "SPAGNOLO";
    break;


}


$indirizzo "email@email.it";
$titolo "Richiesta di iscrizione alla newsletter";
$email $_POST['email'];
$nome "nome sito;


// Prepariamo gli headers
    //
$headers = '';
    
$headers .= "From$nome <$email>\n";
    
$headers .= "MIME-Version1.0\n";
    
$headers .= "Content-Typetext/htmlcharset=\"iso-8859-1\"\n";
    
$headers .= "Content-Transfer-Encoding: 7bit\n\n";



// Prepariamo il corpo dell'email
    
$body .= "<body style=\"background:#99cccc\">";
    
$body .= "<div align=\"center\">"."



....resto del corpo......"
;


//controllo campo email

if ($email == "" ) {
$erroremail "Campo obbligatorio";
echo <<< END_HEREDOC
<div class="form">
{$lang["errore1"]}
</div>

END_HEREDOC;
}

else if (!
eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {
       
$erroremail ="- email non valida.
"
;
echo <<< END_HEREDOC
<div class="form">
{$lang["errore"]}

</div>

END_HEREDOC;

}else{

echo <<< END_HEREDOC
<div class="form">
{$lang["conferma"]}
</div>
END_HEREDOC;
}

// Invio dell'email
if ($erroremail == ""mail($indirizzo,$titolo,$body$headers);

?>
da cosa può dipendere??