- Home
- Categorie
- Coding e Sistemistica
- PHP
- funzione mail() e caratteri accentati
-
funzione mail() e caratteri accentati
Ciao a tutti e chiedo scusa se chiedo qualcosa di sa risolto, ho un problema con la funzione mail, l'e-mail mi arriva senza la decodifica utf-8 "che uso anche nelle pagine del sito" dei caratteri accentati o per lo meno se per es. scrivo nel messaggio "spirit è spirit" allora la è la vedo bene mentre se scrivo "spirit + è spirit" la è non viene decodificata, dove sbaglio? Questo e il codice, grazie a tutti.
[php]
$mittente = ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
//funzione per controllo veridicita e-mail;
list () = ControlloEmail ($mittente);
function ControlloEmail($mittente)
{
$mittente_ok = eregi("^[_a-z0-9+-]+(.[_a-z0-9+-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$",$mittente);
if($mittente_ok == true)
{
//variabili globali provenienti dal form;
$nome = ltrim(rtrim(strip_tags(stripslashes($_POST['nome']))));
$cognome = ltrim(rtrim(strip_tags(stripslashes($_POST['cognome']))));
$oggetto = ltrim(rtrim(strip_tags(stripslashes($_POST['oggetto']))));
$testo= ltrim(rtrim(strip_tags(stripslashes($_POST['testo']))));//da chi arriva e-mail $email_sito = "Info: <[email protected]>"; //da chi viene inviata e-amil $mail_to = "[email protected]"; $title = "Richiesta da: $cognome."; $body = $title; $head = "From: <$email_sito>"; $headers ="Decodifica\r" ; $headers .= "charset=UTF-8\r\n"; $headers .="Messaggio inviato da:\r $cognome $nome\r E-mail: $mittente\r Oggetto: $oggetto\r\r Info: $testo\n\r"; if($nome=="" || $cognome=="" || $oggetto=="" || $testo=="") { echo "<p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dei dati.<br />Si prega di ricontrollarli ed inserire tutti i campi obbligatori.<br /><br />"; echo "<a href=\"javascript:history.go(-1)\" alt=\"Torna indietro\" title=\"Torna indietro\"><a href=\"javascript:history.go(-1)\">Torna indietro</a></a></p>"; } else { if(mail($mail_to, $body, $headers, $head)) { echo "<p style=\"text-align:center;\"> E-mail inviata correttamente!!!<br />Grazie per avermi contattato, rispondero' appena possibile.</p>"; } else { echo "<p> <p style=\"color:red; font-weight:bold;\">C´ è stato un errore nell´ invio dell´ E-mail.<br />Si prega di riprovare. Grazie<br /><br />"; echo "<a href=\"javascript:history.go(-1)\" alt=\"go back\" title=\"go back\"><a href=\"javascript:history.go(-1)\">Torna indietro</a></a></p> </p>"; } } } elseif ($mittente_ok == false) { echo "<p> <p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dell'E-mail mittente. <br /><br />"; echo "<a href=\"javascript:history.go(-1)\" alt=\"go back\" title=\"go back\"><a href=\"javascript:history.go(-1)\">Torna indietro</a></a></p> </p>"; } }
[/php]
-
Chiedo scusa avevo inserito il codice sbagliato, questo e giusto:
[php]
$mittente = ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
list () = ControlloEmail ($mittente);
function ControlloEmail($mittente)
{
$mittente_ok = eregi("^[_a-z0-9+-]+(.[_a-z0-9+-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$",$mittente);
if($mittente_ok == true)
{
//variabili globali provenienti dal form;$nome = ltrim(rtrim(strip_tags(stripslashes($_POST['nome'])))); $cognome = ltrim(rtrim(strip_tags(stripslashes($_POST['cognome'])))); $oggetto = ltrim(rtrim(strip_tags(stripslashes($_POST['oggetto'])))); $testo= ltrim(rtrim(strip_tags(stripslashes($_POST['testo'])))); $mail_to = [email protected]; $body = "Richiesta da $cognome"; $headers = "Decodifica\r"; $headers .= "Content-Type: text/html; charset=UTF-8"; $headers .= "\r\nMessaggio inviato da:\r $cognome $nome\r E-mail: $mittente\r Oggetto: $oggetto\r Info: $testo"; $sito = "Info Contatti"; $mit = "From: <$sito>"; if($nome=="" || $cognome=="" || $oggetto=="" || $testo=="") { echo "<p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dei dati. <br />Si prega di ricontrollarli ed inserire tutti i campi obbligatori.<br /><br />"; echo "<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>"; } else { if(mail($mail_to, $body, $headers, $mit)) { echo "<p style=\"text-align:center;\"> E-mail inviata correttamente!!!</p>"; } else { echo "<p> <p style=\"color:red; font-weight:bold;\">C´ è stato un errore nell´ invio dell´ E-mail.<br />Si prega di riprovare. Grazie<br /><br />"; echo "<a href=\"javascript:history.go(-1)\" title=\"go back\">Torna indietro</a></p> </p>"; } } } elseif ($mittente_ok == false) { echo "<p style=\"color:red; font-weight:bold; text-align:center;\">Errore nella compilazione dell'E-mail mittente. <br /><br />"; echo "<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>"; } }
[/php]