- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema lettere accentate in form email
-
Problema lettere accentate in form email
Un saluto a tutti. Da giorni sto cercando di risolvere un problema fastidioso, riguardante le lettere accentate nel form email. La causa da quanto ho capito è il charset, visto che il mio sito utilizza l'utf-8. Modificandolo in ISO-8859-1 questo inconveniente si risolve, ma sballa la codifica del testo della pagina sostituendo i caratteri speciali con strani simboli. Spero che qualcuno di voi mi possa aiutare, perchè non so proprio come fare. Vi posto il codice del file "send.php"
<?PHP /*Impostazioni e controllo campi*/ $ip = $_POST['ip']; $httpref = $_POST['httpref']; $httpagent = $_POST['httpagent']; $nome = $_POST['nome']; $cognome = $_POST['cognome']; $url = $_POST['url']; $mail = $_POST['mail']; $testo = $_POST['testo']; $oggetto = $_POST['oggetto']; session_start(); $utente = $_POST['captcha']; $validato = $_SESSION['veri']; if(empty($nome) || empty($cognome) || empty($mail) || empty($testo)) { echo "<img src='layout/not_send.jpg' width='48' height='48' alt='Errore' class='image_display' /><h2 class='t_center'>Compila tutti i campi del form</h2>\n"; die ("<h2 class='t_center'>Torna indietro!</h2>"); } if(!$mail == "" && (!strstr($mail,"@") || !strstr($mail,"."))) { echo "<img src='layout/not_send.jpg' width='48' height='48' alt='Errore' class='image_display' /><h2 class='t_center'>Inserisci un'email valida!</h2>\n"; $badinput = "<h2 class='t_center'>Messaggio non inviato!</h2>\n"; echo $badinput; die ("<h2 class='t_center'>Torna indietro!!</h2>"); } if (eregi('Seleziona', $oggetto)) { die ("<img src='layout/not_send.jpg' width='48' height='48' alt='Errore' class='image_display' /><h2 class='t_center'>Seleziona il motivo del contatto!</h2>"); } if(!$url == "" && (!strstr($url,"h t t p : / /"))) { echo "<img src='layout/not_send.jpg' width='48' height='48' alt='Errore' class='image_display' /><h2 class='t_center'>Inserisci un url valido completo di h t t p :/ /!</h2>\n"; $badinput = "<h2 class='t_center'>Messaggio non inviato!</h2>\n"; echo $badinput; die ("<h2 class='t_center'>Torna indietro!!</h2>"); } if (eregi('http:', $testo)) { die ("<img src='layout/not_send.jpg' width='48' height='48' alt='Errore' class='image_display' /><h2 class='t_center'>E' vietato inserire url nel campo messaggio!</h2>"); } if($utente == $validato){ }else{ $badinput = "<img src='layout/not_send.jpg' width='48' height='48' alt='Errore' class='image_display' /><h2 class='t_center'>Codice di verifica non corretto o non inserito!</h2>\n"; echo $badinput; die ("<h2 class='t_center'>Torna indietro!</h2>"); } $todayis = date("d, m, Y, g:i a") ; $oggetto = $oggetto; $subject = $oggetto; $testo = stripcslashes($testo); /*Impostazioni messaggio amministratore*/ $da = "From: $mail\r\n"; $message = "Data contatto: $todayis \n Da: $nome ($mail)\n Cognome: $cognome \n Url: $url \n Messaggio: $testo \n Informazioni addizionali: IP = $ip \n Browser Info: $httpagent \n Referral: $httpref \n"; mail("[email protected]", $subject, $message, $da, $url); /*Impostazioni messaggio pubblico*/ $dal_sito = "From: [email protected]\r\n"; mail("$mail\n","Conferma: messaggio inviato!","Gentile $nome, lo staff di miosito.com, risponderà alla tua richiesta nel più breve tempo possibile. Un saluto! Lo Staff di miosito.com", $dal_sito); ?> <img src="layout/ok.jpg" width="48" height="48" alt="Inviato!" class="image_display" /><h2 class="t_center"> Grazie per averci contattato: <?PHP echo $nome ?><br /> Un'email di notifica è stata inviata all'indirizzo: <em>"<?PHP echo $mail ?>".</em></h2> <p class="t_center"><a href="contattaci.php">Torna indietro</a></p> ```Vi ringrazio in anticipo!
-
ho risolto finalmente, bastava dichiarare gli headers.
-
Ciao come lo hai risolto?
Grazie
-
ho modificato questa parte di codice:
/*Impostazioni messaggio amministratore*/ $headers = "MIME-Version: 1.0\n". "Content-type: text/html; charset=utf-8\n". "From: $nome <$mail>\n"; $message = "<strong>Data contatto:</strong> $todayis \n<br /> <strong>Da:</strong> $nome ($mail)\n<br /> <strong>Cognome:</strong> $cognome \n<br /> <strong>Url:</strong> $url \n<br /> <strong>Messaggio:</strong> $testo \n<br /> <strong>Informazioni addizionali:</strong> IP = $ip \n<br /> <strong>Browser Info:</strong> $httpagent \n<br /> <strong>Referral:</strong> $httpref \n"; mail("Webmaster <[email protected]>", $oggetto, "<p>$message</p>", $headers); /*Impostazioni messaggio pubblico*/ $headers_p = "MIME-Version: 1.0\n". "Content-type: text/html; charset=utf-8\n". "From: Webmaster <[email protected]>\n"; mail("$mail\n","Conferma: messaggio inviato!","<p>Gentile $nome, lo staff di miosito.com, risponderà alla tua richiesta nel più breve tempo possibile.</p> <p>Un saluto! <font color='#cdcdcd'>Lo Staff di miosito.com</font></p>", $headers_p ); ```In questo modo l'email arriverà sia a te webmaster che all'utente, in formato html codificato in UTF-8. ;)